文章目录
一.C# 索引器(Indexer)
1.语法
2.索引器(Indexer)的用途
3.重载索引器(Indexer)
二.可空类型
1.C# 单问号 ? 与 双问号 ??
2.C# 可空类型(Nullable)实例
3.Null 合并运算符( ?? )
三.C# 匿名方法
1.C# 匿名方法的定义
2.编写匿名方法的语法
3.实例
四.C# 不安全代码
1.指针变量
2.使用指针检索数据值
3.传递指针作为方法的参数
4.使用指针访问数组元素
5.编译不安全代码
一.C# 索引器(Indexer)
1.语法
索引器(Indexer) 允许一个对象可以像数组一样使用下标的方式来访问。当您为类定义一个索引器时,该类的行为就会像一个 虚拟数组(virtual array) 一样。您可以使用数组访问运算符 [ ] 来访问该类的的成员。
2.索引器(Indexer)的用途
索引器的行为的声明在某种程度上类似于属性(property)。就像属性(property),您可使用 get 和 set 访问器来定义索引器。但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值。换句话说,它把实例数据分为更小的部分,并索引每个部分,获取或设置每个部分。定义一个属性(property)包括提供属性名称。索引器定义的时候不带有名称,但带有 this 关键字,它指向对象实例
3.重载索引器(Indexer)
索引器(Indexer)可被重载。索引器声明的时候也可带有多个参数,且每个参数可以是不同的类型。没有必要让索引器必须是整型的。C# 允许索引器可以是其他类型,例如,字符串类型。
二.可空类型
1.C# 单问号 ? 与 双问号 ??
? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。
int? i = 3; 等同于:Nullable<int> i = new Nullable<int>(3);
int i; //默认值0 int? ii; //默认值null
?? 双问号用于判断一个变量在为 null 的时候返回一个指定的值
2.C# 可空类型(Nullable)实例
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
3.Null 合并运算符( ?? )
Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。Null 合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型。如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值。下面的实例演示了这点:
三.C# 匿名方法
1.C# 匿名方法的定义
匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。
2.编写匿名方法的语法
3.实例
四.C# 不安全代码
1.指针变量
当一个代码块使用 unsafe 修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。
2.使用指针检索数据值
未完待续下一章继续C# 不安全代码知识点......