在下面提到的代码中,有两种方法可以分配静态变量'RateOfInterest'的值。
我相信'Customer'类的多个对象,'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}");
}
}
答案 0 :(得分:2)
他们将编译成同样的东西。所以没有区别,
那不是私人构造函数。这是static constructor
静态构造函数用于初始化任何静态数据,或执行仅需要执行一次的特定操作。在创建第一个实例或引用任何静态成员之前自动调用它
当使用静态构造函数时,直接赋值,行变得太长(基于观点)或者当我需要多行来初始化值时。
答案 1 :(得分:1)
实际上,这两种方法没有区别。
如果要分配文字值,例如int plusIntPointer(int *x){
return ++*x;
}
,则在声明处直接分配它会更快。
但是如果你的变量的初始化更复杂,就像这样:
10
你应该把它放在静态构造函数中。