在下面提到的代码中,有两种方法可以分配静态变量"RateOfInterest"的值。
- 通过直接分配值。
- 通过在静态构造函数中赋值。
我相信对于"客户"类的多个对象,"RateOfInterest"使用任一方法都只有一个内存分配。(如果我错了,请纠正我)。
一种方法比另一种方法有什么具体优势吗?
class Customer
{
int AccNo;
static int RateOfInterest;
//static int RateOfInterest = 10; // Approach 1
static Customer()
{
RateOfInterest = 10; // Approach 2
}
public Customer(int AccNo)
{
this.AccNo = AccNo;
}
public void Display()
{
Console.WriteLine($"AccNo : {AccNo}, Rate : {RateOfInterest}");
}
}
将被编译成同一件事。 所以没有区别,
这不是私有构造函数。 那是静态构造函数
静态构造函数用于初始化任何静态数据,或执行只需要执行一次的特定操作。在创建第一个实例或引用任何静态成员之前自动调用它
当通过直接赋值,行变得太长(基于意见)或当我需要多行来初始化值时,我使用静态构造函数。
实际上,这两种方法没有区别。
如果要分配文本值,例如 10
,则直接在声明中分配它会更快。
但是,如果变量的初始化更复杂,如下所示:
val = new MyClass();
val.A = 1;
val.B = "Hi";
val.SomeMethod();
val.AnotherMethod();
您应该将其放在静态构造函数中。