随笔分类 - CSharp and DotNet
摘要:当我们在 VS2019/16.8 或 JetBrains Rider2020.3 EAP7 中打开项目时,我们往往会看到以下错误: 包引用出错,或 RESTORE 失败,或明明包引用了,但项目里还是提示缺少包; 项目编译时提醒无法找到 xxx.dll 但我们在命令行下编译项目却是成功的: dotne
阅读全文
摘要:CAP 基于 .NET Standard 的 C# 库,是一种处理分布式事务的解决方案,具有 EventBus 的功能,兼具轻量级、易使用、高性能等优点。CAP 于 2017 年 7 月加入 NCC,作者精雕细琢、更新频繁,项目日趋成熟、臻于完美,于上周末成为 NCC 首个星数破千的项目,值得祝贺,特发此文。
阅读全文
摘要:给定一个DataTable,如果从中取出数值类型列的值并对其累加?(不知该列是何种数值类型)
阅读全文
摘要:转换使表达式可以当做一个明确的类型来加以处理。转换使得所给定类型的表达式以不同类型来处理,或使得没有某个类型的表达式获得该类型。转换可以是显式或隐式的,而这决定了是否需要显式地强制转换。比方说,从 int 向 long 的转换是隐式的,所以 int 表达式可以隐式地当做 long 的来处理。反过来转换,从类型 long 转换为 int 是显式的,需要显式的强制转换(explicit cast)。
阅读全文
摘要:变量(variable)表示存储的位置。每个变量都有类型,类型决定变量保存的值的类型。C# 是门类型安全语言,编译器会确保变量中保存一个适合类型的值。变量的值可通过赋值或通过使用 ++ 与 -- 操作符改变。变量必须在获得前被明确赋值(definitely assigned)。变量要么初始已赋值(initially assigned),要么初始未赋值(initially unassigned)。初始已赋值的变量有非常明确(well-defined)的初始值,且视己为被明确赋值(definitely assigned)的。初始未赋值的变量没有初始值(initial value)。对于初始未赋值变量来说,为了在某个位置能明确赋值,必须在通往该位置的每一个可能执行到的分支对该变量赋值。
阅读全文
摘要:C# 语言的类型分为两大类:值类型(value type)和引用类型(reference type),而它们又都同时具有至少一个类型形参的泛型类型(generic type)。类型形参(type parameters)能同时指定值类型和引用类型。第三类是指针(pointers),只能用于非安全代码(unsafe code)中。本文将逐一分别介绍值类型、引用类型、装箱与拆箱、构造类型、类型形参、表达式树类型和动态类型。
阅读全文
摘要:拥有进入点(entry point)的程序集称应用程序(application)。当运行一应用程序时,将创建一新应用程序域(application domain)。同一个应用程序可在同一台机器(machine)上同时运行多个实例,并且每个实例都有自己的应用程序域。应用程序域作为应用程序状态(application state)之容器(container),使应用程序相互隔离(isolation)。应用程序域是定义于应用及所用类库的类型之容器与边界。加载入不同的应用程序域的同一类型是相互泾渭分明的,而其实例化的对象也不会在应用程序域之间直接共享。比方说,对于这些类型的静态变量,每个应用程序域都自有一份其副本,同时这些类型的静态构造函数在应用程序域中至多运行一次。实现可以自由为应用程序域的创建和销毁提供指定实现(implementation-specific)策略或机制。
阅读全文
摘要:C# 程序(program)由至少一个源文件(source files)组成,其正式称谓为编译单元(compilation units)。每个源文件都是有序的 Unicode 字符序列。源文件通常与文件系统内的相应文件具有一对一关系,但这种相关性并非必须因素。为尽最大可能确保可移植性,推荐文件系统中的文件编码为 UTF-8 编码规范。从理论上来说,程序编译由三步骤组成:1、转换(transformation),将文件中的特定字符编码方案转换为 Unicode 字符序列;2、词法分析(lexical analysis),将 Unicode 字符流转换为标记(token)流;3、语法分析(syntactic analysis),将标记流转换为可执行代码。
阅读全文
摘要:C#(念作 See Sharp)是一种简单、现代、面向对象并且类型安全的编程语言。C# 源于 C 语言家族,因此 C、C++ 和 Java 工程师们能迅速上手。ECMA 国际[1](ECMA International)发布的 ECMA-334 规范[2]和由国际标准化组织[3](ISO)及国际电工委员会[4](IEC)发布的 ISO/IEC 23270 规范使 C# 语言成为一种标准化的语言,微软 .NET Framework C# 编译器就是遵照了这两个标准而实现的。
阅读全文