发布了文章6 月 21 日
范围变量和数据源已强类型化。from 子句中引用的数据源必须具有 IEnumerable、IEnumerable < T > 类型之一,或 IQueryable < T > 等派生类型。
发布了文章5 月 28 日
默认情况下,C# 中的参数按值传递给函数。这意味着将变量的副本会传递到方法。对于值(struct)类型,值的副本将传递到方法。对于引用(class)类型,引用的副本将传递到方法。参数修饰符可让你按引用传递参数。
发布了文章5 月 28 日
文件范围的命名空间声明使你能够作出以下声明:一个文件中的所有类型都在一个命名空间中。C# 10 中可使用文件范围的命名空间声明。以下示例与前面的示例类似,但使用了一个文件范围的命名空间声明:
发布了文章5 月 19 日
C# 源文件可以包含结构化注释,这些注释为这些文件中定义的类型生成 API 文档。C# 编译器生成一个 XML 文件,其中包含表示注释和 API 签名的结构化数据。例如,其他工具可以处理 XML 输出以网页或 PDF 文件的形式创建人工可读文档。
发布了文章5 月 11 日
声明语句声明新的局部变量、局部常量或 reference 局部变量。若要声明局部变量,请指定其类型并提供其名称。可以在一个语句中声明多个相同类型的变量,如以下示例所示:
发布了文章5 月 9 日
使用表达式、switch 语句和 is 将输入表达式与任意数量的特征匹配。C# 支持多种模式,包括声明、类型、常量、关系、属性、列表、var 和弃元。可以使用布尔逻辑关键字 and、or 和 not 组合模式。
发布了文章5 月 3 日
下面的例子提供了两个(两组 add 和 remove)事件的访问器,它演示了如何处理不太常见的情况:类继承自两个或多个接口,且每个接口都具有相同名称的事件。在这种情况下,你必须为至少其中一个事件提供显式接口实现。为事件编写显式接口实现时,便必须编写 add 和 rem...
发布了文章5 月 2 日
泛型定义中的 where 子句指定对用作泛型类型、方法、委托或本地函数中类型参数的参数类型的约束。约束可指定接口、基类或要求泛型类型为引用、值或非托管类型。约束声明类型参数必须具有的功能,并且约束必须位于任何声明的基类或实现的接口之后。
发布了文章5 月 1 日
使用 async 修饰符可将方法、lambda 表达式或匿名方法指定为异步。如果对方法或表达式使用此修饰符,则其称为异步方法。如下示例定义了一个名为 FF异步示例 的异步方法:
发布了文章4 月 28 日
上例中的类 LeiP 继承自 LeiJi,由于 LeiP 是空的(没有重写 FF),因此当声明 LeiP 对象 p 后,可以使用继承自 LeiJi 的方法 FF,输出:继承的方法:2
发布了文章4 月 28 日
using 指令允许使用在命名空间中定义的类型,而无需指定该类型的完全限定命名空间。using 指令以基本形式从单个命名空间导入所有类型,如下例所示:
发布了文章4 月 26 日
备注:C# 默认编译器是非 unsafe 的,使用 unsafe 关键字会发生编译错误(警告 CS0227:不安全代码只会在使用 /unsafe 编译的情况下出现)。不能通过公共语言运行时验证 unsafe 代码。若要使用 unsafe 关键字,依如下步骤完成:
发布了文章4 月 26 日
typeof 运算符用于获取某个类型的 System.Type 实例。typeof 运算符的实参必须是类型或类型形参的名称,如以下示例所示:
发布了文章4 月 25 日
关键字 this 引用类的当前实例,还用作扩展方法的第一个参数的修饰符。备注:本文讨论如何在类实例中使用 this。有关它在扩展方法中使用的详细信息,请参阅 C# 的 extension 关键字。以下是 this 的常见用法:限定由相似名称隐藏的成员,例如: {代码...} 将一个对象...
发布了文章4 月 24 日
结构类型具有值语义。也就是说,结构类型的变量包含该类型的实例。默认情况下,在赋值时复制变量值,将参数传递给方法,并返回方法结果。对于结构类型变量,复制该类型的实例。
发布了文章4 月 23 日
使用 static 修饰符可声明属于类型本身而不是属于特定对象的静态成员。static 修饰符可用于声明 static 类。在类、接口和结构中,可以将 static 修饰符添加到字段、方法、属性、运算符、事件和构造函数。static 修饰符不能用于索引器或终结器。
发布了文章4 月 22 日
stackalloc 表达式在堆栈上分配一块内存。在方法执行期间创建的堆栈分配内存块在该方法返回时自动丢弃。你不能显式地释放用 stackalloc 分配的内存。堆栈分配的内存块不受垃圾收集的约束,也不必用固定语句固定。
发布了文章4 月 21 日
sizeof 运算符返回给定类型的变量占用的字节数。在非 unsafe 代码中,sizeof 运算符的参数必须是 unmanaged 类型的名称,或是被 constrained(约束)为 unmanaged 类型的类型参数。unmanaged 类型包括所有数值类型、enum 类型和 tuple(元组)和 struct(结构)类型...
发布了文章4 月 21 日
该类中的成员不能是 abstract 的,由于它是必须被继承类重写的。警告 CS0513:“密封类 . 方法”是抽象的,但它包含在非抽象类型“密封类”中。
发布了文章4 月 20 日
在以下上下文中,使用 ref 关键字:方法的签名和调用这将使参数的引用地址传递给方法(而不是其值)。 {代码...} 方法签名中按引用返回在方法签名中,按引用将值返回给调用方。 {代码...} 声明 ref 变量在局部变量的声明中,声明 reference 变量。 {代码...} 作为 re...