标签:
类与结构体的区别:
指定枚举的类型:
默认情况下枚举的类型为int类型,但是我们也可以指定枚举类型,如下:
1 enum Gender : byte 2 { 3 Female, 4 Male 5 }
静态构造函数:
C#中还存在静态构造函数,即创建动态实例或者引用静态属性之前,都会调用静态构造函数。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace StudyTest 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Console.WriteLine(StaticConstructor.name); 14 Console.WriteLine(StaticConstructor.name); 15 Console.ReadKey(); 16 } 17 } 18 19 class StaticConstructor 20 { 21 private static string _name; 22 23 static StaticConstructor() 24 { 25 Console.WriteLine("静态构造函数被调用了!"); 26 _name = "StaticConstructorInstance"; 27 } 28 29 public static string name 30 { 31 get { return _name; } 32 } 33 } 34 }
输出如下:
1 静态构造函数被调用了! 2 StaticConstructorInstance 3 StaticConstructorInstance
析构函数:
当对象被GC回收时会调用析构函数,一般情况无需显示定义析构函数,但是当需要销毁非托管资源时可以显示定义析构函数进行处理。析构函数的显示定义如下:
1 class Person 2 { 3 ~Person() 4 { 5 Console.WriteLine("析构函数被调用了!"); 6 } 7 }
使用析构函数时需要注意下面几点:
索引器:
当一个类需要使用类似数组的[]访问内部数据时可以使用索引器。索引器类似于属性,可使用get/set访问器,具体形式如下:
1 [修饰符] 数据类型 this[索引类型 index] 2 { 3 get { //返回数据 } 4 set { //设置数据 } 5 }
下面我们看一个例子:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace StudyTest 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 IndexTest it = new IndexTest(); 14 it[0] = 1; 15 it[1] = 2; 16 it[2] = 3; 17 18 Console.WriteLine(it[0]); 19 Console.WriteLine(it[1]); 20 Console.WriteLine(it[2]); 21 Console.ReadKey(); 22 } 23 } 24 25 class IndexTest 26 { 27 private int[] arr = new int[10]; 28 29 public int this[int index] 30 { 31 get { return arr[index]; } 32 set { arr[index] = value; } 33 } 34 } 35 }
输入如下:
1 1 2 2 3 3
标签:
原文地址:http://www.cnblogs.com/hammerc/p/4486515.html