Str*_*007 16 c# static-constructor
我正在阅读使用两个构造函数的C#代码.一个是静态的,另一个是公开的.这两个构造函数有什么区别?为了我们必须使用静态构造函数?
Kon*_*lph 31
static并且public是正交概念(即它们彼此之间没有任何关系).
public只是意味着类的用户可以调用该构造函数(而不是说private).
static意味着该方法(在本例中为构造函数)不属于类的实例,而属于"类本身".特别是,当第一次使用类时,静态构造函数会自动调用一次.
此外,静态构造不能进行public或private,因为它不能被手动地调用; 它仅由.NET运行时本身调用 - 因此将其标记为public没有意义.
Ond*_*ták 24
在实例化类之前,静态构造函数只运行一次.如果你想要一次只发生一次,它就被使用了.一个很好的例子是Bus类(类似于他们在MSDN文章中解释的内容):
public class Bus
{
public static int busNo = 0;
static Bus()
{
Console.WriteLine("Woey, it's a new day! Drivers are starting to work.");
}
public Bus()
{
busNo++;
Console.WriteLine("Bus #{0} goes from the depot.", busNo);
}
}
class Program
{
static void Main(string[] args)
{
Bus busOne = new Bus();
Bus busTwo = new Bus();
}
// Output:
// Woey, it's a new day! Drivers are starting to work.
// Bus #1 goes from the depot.
// Bus #2 goes from the depot.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9072 次 |
| 最近记录: |