C#静态构造函数问题及解决方法
问题:在Student类的例子中,如果希望对象编号不是从1开始,而是从0到1000之间的随机的数开始。
构造函数中虽然可以执行代码,但每个对象创建时都执行,而本例中只希望第一个对象创建时执行。
解决:
C#中支持静态构造函数,静态构造函数在类中第一个对象初始化或引用任何静态成员之前执行。
using System;
public class Student
{
public int serialNumber;
private static int counter;
static Student()
{
Random rand = new Random(0);
counter = rand.Next(0, 1000);
}
public Student()
{
serialNumber = counter;
counter++;
}
}
class MyApp
{
static void Main()
{
Student stu = new Student();
Console.WriteLine(stu.serialNumber);
Student stu1 = new Student();
Console.WriteLine(stu1.serialNumber);
}
}
点击加载更多评论>>