C# 的 sizeof 运算符

4 月 21 日
阅读 2 分钟
67
sizeof 运算符返回给定类型的变量占用的字节数。在非 unsafe 代码中,sizeof 运算符的参数必须是 unmanaged 类型的名称,或是被 constrained(约束)为 unmanaged 类型的类型参数。unmanaged 类型包括所有数值类型、enum 类型和 tuple(元组)和 struct(结构)类型,其中所有成员都是 unmanaged 类型。

C# 的 sealed 关键字

4 月 21 日
阅读 2 分钟
56
该类中的成员不能是 abstract 的,由于它是必须被继承类重写的。警告 CS0513:“密封类 . 方法”是抽象的,但它包含在非抽象类型“密封类”中。

C# 的 ref

4 月 20 日
阅读 2 分钟
160
在以下上下文中,使用 ref 关键字:方法的签名和调用这将使参数的引用地址传递给方法(而不是其值)。 {代码...} 方法签名中按引用返回在方法签名中,按引用将值返回给调用方。 {代码...} 声明 ref 变量在局部变量的声明中,声明 reference 变量。 {代码...} 作为 ref 表达式或运算符的一部分作为 ref 条件表达式或 ref ...

C# 的 readonly

4 月 20 日
阅读 3 分钟
218
在字段声明中,readonly 指示只能在字段声明方法或在同一个类的构造函数中向字段赋值(甚至可以多次赋值)。可以在字段声明和构造函数中多次分配和重新分配只读字段。

C# 的 public

4 月 20 日
阅读 2 分钟
151
public 关键字是类型和类型成员的访问修饰符。public 访问是允许的最高访问级别。对访问 public 成员没有限制,如以下示例所示:

C# 的 protected

4 月 20 日
阅读 1 分钟
173
protected 成员在其所在的类中可由派生类实例访问。相对于 private,它的可访问范围稍有扩大,也就是不仅包括声明它的类,也包括从该类继承来的派生类。

C# 的 private

4 月 20 日
阅读 2 分钟
168
上例中 sy 对象以及在 Main 中使用 LeiSY 的静态方式均无法访问 LeiSY 的“_数量”和“_单价”成员。但在 LeiSY 内部是可以访问的。

C# 的 params 关键字

4 月 20 日
阅读 3 分钟
173
span 类型:** System . Span < T >** System . ReadOnlySpan < T >** 此处,元素类型为 T。

C# 的 override 关键字

4 月 20 日
阅读 5 分钟
184
上例中,“Lei正方形”和“Lei圆”均从“Lei封闭形状”中继承了“_周长”和“_面积”方法,并(必须)提供了新的实现。通过 override 声明重写的方法称为重写基方法。override 方法必须具有与重写基方法相同的签名。override 方法支持协变返回类型。具体而言,override 方法的返回类型可从相应基方法的返回类型派生。

C# 的 operator 关键字(预定义的一元、算术、等于、比较运算符及重载)

4 月 20 日
阅读 3 分钟
147
用户定义的类型可重载预定义的 C# 运算符。也就是说,当一个或两个操作数都是某类型时,此类型可提供操作的自定义实现。“可重载运算符”部分介绍了哪些 C# 运算符可重载。

C# 的 new

4 月 18 日
阅读 2 分钟
297
new 运算符创建类型的新实例。new 关键字还可用作成员声明修饰符或泛型类型约束。构造函数调用要创建类型的新实例,通常使用 new 运算符调用该类型的某个构造函数: {代码...} 可以使用带有 new 运算符的对象或集合初始值设定项实例化和初始化一个语句中的对象,如下例所示: {代码...} 目标类型化 new构造调用表达式由...

C# 的 namespace

4 月 18 日
阅读 2 分钟
367
文件范围的命名空间声明使你能够作出以下声明:一个文件中的所有类型都在一个命名空间中。C# 10 中可使用文件范围的命名空间声明。以下示例与前面的示例类似,但使用了一个文件范围的命名空间声明:

C# 的 lock(确保对共享资源的独占访问权限)

4 月 18 日
阅读 3 分钟
233
lock 语句获取给定对象的互斥锁,执行语句块,然后释放锁。当锁被持有时,持有该锁的线程可以再次获取并释放该锁。任何其他线程都被阻止获取锁并等待,直到锁被释放。lock 语句确保在任何时刻最多只有一个线程执行它的线程体。

C# 的 is 关键字

4 月 18 日
阅读 2 分钟
197
is 运算符检查表达式的结果是否与给定的类型相匹配。还可使用 is 运算符将表达式与模式相匹配,如下例所示: {代码...} 上例输出 True(2000 年的 10 月 6 日确实是该月第一个星期五)。在前面的示例中,is 运算符将表达式与关系模式和带有嵌套常量的属性模式相匹配。is 运算符在以下应用场景中很有用:检查表达式的运行...

C# 的 internal

4 月 18 日
阅读 2 分钟
240
internal 访问通常用于基于组件的开发,因为它可使一组组件以私有方式进行协作,而不必向应用程序代码的其余部分公开。例如,用于生成图形用户界面的框架可以提供 Control(控件)和 Form(窗体)类,这两个类通过使用具有内部访问权限的成员进行协作。由于这些成员是内部的,因此不会向正在使用框架的代码公开。

C# 的接口(interface)

4 月 18 日
阅读 4 分钟
237
接口定义协定。实现该协定的任何 class、record 或 struct 必须提供接口中定义的成员的实现。接口可为成员定义默认实现。它还可以定义 static 成员,以便提供常见功能的单个实现。 从 C# 11 开始,接口可以定义 static abstract 或 static virtual 成员来声明实现类型必须提供声明的成员。通常,static virtual 方法声明...

C# 的 in

4 月 17 日
阅读 1 分钟
163
在以下上下文中,使用了 in 关键字:泛型接口和委托中的泛型类型参数。作为参数修饰符,它允许按引用而不是按值向方法传递参数。foreach 语句。LINQ 查询表达式中的 from 子句。LINQ 查询表达式中的 join 子句。

C# 的 fixed

4 月 17 日
阅读 2 分钟
203
fixed 语句可防止垃圾回收器重新定位可移动变量,并声明指向该变量的指针。固定变量的地址在语句的持续时间内不会更改。只能在相应的 fixed 语句中使用声明的指针。 声明的指针是只读的,无法修改:

C# 的异常捕捉和引发

4 月 17 日
阅读 7 分钟
300
使用 throw 和 try 语句来处理异常。 使用 throw 语句引发异常。 使用 try 语句捕获和处理在执行代码块期间可能发生的异常。

C# 的 extern(外部)

4 月 17 日
阅读 1 分钟
248
extern 修饰符用于声明在外部实现的方法。当您使用互操作服务调用非托管代码时,extern 修饰符的常见用法是与 DllImport 属性一起使用。在这种情况下,方法也必须声明为 static 的,如下面的例子所示:

用户定义的显式(explicit)和隐式(implicit)转换操作符

4 月 17 日
阅读 2 分钟
159
如果相同的两个类型之间不存在标准转换,则用户定义类型可以定义自定义的与另一个类型之间的隐式或显式转换。隐式转换不需要调用特殊的语法,可以发生在各种情况下,例如,在赋值和方法调用中。预定义的 C# 隐式转换总是成功的,从不抛出异常。用户定义的隐式转换也应该以这种方式运行。如果自定义转换可能抛出异常或丢...

C# 的事件(event)

4 月 16 日
阅读 2 分钟
199
事件是使对象能够触发通知的成员。事件用户可以通过提供事件处理程序为事件附加可执行代码。event 关键字声明一个事件。事件是委托类型。当对象触发事件时,该事件调用所有提供的事件处理程序。事件处理程序是添加到事件并在引发事件时执行的委托实例。事件用户可以在事件上添加或删除其事件处理程序。

C# 的枚举(enum)

4 月 16 日
阅读 2 分钟
284
枚举类型(enum 或 enumeration)是由基础整型数值类型的一组命名常量定义的值类型。要定义枚举类型,请使用 enum 关键字并指定枚举成员的名称:

C# 的迭代语句

4 月 16 日
阅读 4 分钟
289
迭代语句重复执行语句或语句块。for 语句:在指定的布尔表达式的计算结果为 true 时会执行其主体。foreach 语句:枚举集合元素并对集合中的每个元素执行其主体。do 语句:有条件地执行其主体一次或多次。while 语句:有条件地执行其主体零次或多次。

C# 的内置引用类型

4 月 15 日
阅读 6 分钟
284
object 类型是 System . Object 在 .NET 中的别名。 在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从 System . Object 继承的。 可以将任何类型的值(除 ref struct 外)分配给类型的 object 变量。 可以使用文本 null 将任何 object 变量赋值给其默认值。将值类型的...

C# 的 default

4 月 14 日
阅读 3 分钟
320
上例中的代码显示了输入分数(ABCDE)确定和你说啥的 switch,实际上,只要不是 ABCD 中的某一个,代码都会返回“你考的是写啥?”。

C# 的浮点数

4 月 14 日
阅读 2 分钟
252
浮点数值类型表示实数。所有浮点型数值类型均为值类型。它们还是简单类型,可以使用文本进行初始化。所有浮点数值类型都支持算术、比较和相等运算符。

C# 的 const

4 月 14 日
阅读 1 分钟
271
使用 const 关键字声明常量字段或局部常量。常量字段和局部常量不是变量,不能修改。常量可以是数值、布尔值、字符串或 null 引用。不要创建一个常量来表示您希望随时更改的信息。例如,不要使用常量字段来存储产品的价格、产品版本号或公司的品牌名称。这些值可能会随着时间的推移而改变,而且由于编译器传播常量,因此...

C# 的 checked 和 unchecked

3 月 24 日
阅读 3 分钟
373
控制相应表达式中的整型数算术运算和转换的溢出检查,checked 为检查,unchecked 为不检查。checked 和 unchecked 语句与运算符仅仅是作用区域不同,效果一致。

C# 的 char

3 月 23 日
阅读 5 分钟
334
char 的默认值是 U + 0000,即 \0。char 可以进行比较(相等和大小),增量或减量等运算。对 char 进行算数或逻辑位运算,返回一个 int 类型的结果。string(字符串)实际是 char 值的序列。