C#基础学习(类及其构造函数)
带参数的构造函数
namespace X2 { class Class1 { int Id; string Name; public Class1() { Id = 28; Name = "Nemo"; } //构造函数0 public Class1(int val) { Id = val; Name = "Nemo"; } //构造函数1,带参数的构造函数 public Class1(String name) { Name = name; } public void SoundOff() { Console.WriteLine("Name{0},Id{1}",Name,Id); } //构造函数2,带参数的构造函数 } class Program { static void Main(string[] args) { Class1 a = new Class1(),//调用构造函数0 b = new Class1(7),//调用构造函数1 c = new Class1("Bill");//调用构造函数2 c.SoundOff(); b.SoundOff(); c.SoundOff(); } } }
静态构造函数
namespace 静态构造函数 { class RandomNumberClass { private static Random RandomKey; //私有静态字段 static RandomNumberClass() //静态构造函数 { RandomKey = new Random(); //初始化静态函数 } public int GetRandomNumber() { return RandomKey.Next(); } } /*类既可以有静态构造函数,也可以有实例构造函数 如同静态方法,静态构造函数不能够访问所在类的实例成员 因此也不能使用this访问器 不能从程序中显示调用静态构造函数,他们有时被系统 自动调用——在类的任何实例创建之前 ——在类的任何静态成员被引用之前*/ class Program { static void Main(string[] args) { RandomNumberClass a = new RandomNumberClass(); RandomNumberClass b = new RandomNumberClass(); Console.WriteLine("Next Random #:{0}",a.GetRandomNumber ()); Console.WriteLine("Next Random #:{0}", b.GetRandomNumber()); } } }
对象初始化列表
namespace 静态构造函数 { class RandomNumberClass { private static Random RandomKey; //私有静态字段 static RandomNumberClass() //静态构造函数 { RandomKey = new Random(); //初始化静态函数 } public int GetRandomNumber() { return RandomKey.Next(); } } /*类既可以有静态构造函数,也可以有实例构造函数 如同静态方法,静态构造函数不能够访问所在类的实例成员 因此也不能使用this访问器 不能从程序中显示调用静态构造函数,他们有时被系统 自动调用——在类的任何实例创建之前 ——在类的任何静态成员被引用之前*/ class Program { static void Main(string[] args) { RandomNumberClass a = new RandomNumberClass(); RandomNumberClass b = new RandomNumberClass(); Console.WriteLine("Next Random #:{0}",a.GetRandomNumber ()); Console.WriteLine("Next Random #:{0}", b.GetRandomNumber()); } } }
readonly修饰符和const的对比
namespace readonly修饰符 { /*readonly修饰符相当于申明一个字段为const, 但不同的是const字段只能在字段的申明语句初始化, 而readonly字段可以在下列任意位置设置它的值 字段申明语句等同于const,而类的任何构造函数中,如果是 static字段,初始化必须在static构造函数中完成 const必须在编译区决定,而readonly可以在运行去决定 */ class Shape { readonly double PI = 3.1416;//初始化 readonly int NumberOfSides;//未初始化 public Shape(double side1, double side2)//构造函数 { NumberOfSides = 4;//在构造中设定 } public Shape(double sides, double side2, double side3)//构造函数 { NumberOfSides = 3;//在构造中设定 } } class Program { static void Main(string[] args) { } } }
浙公网安备 33010602011771号