Почему C# позволяет инициализировать переменные статического класса в нестационарном contructor? Статическим переменным должно быть разрешено только инициализировать статические конструкторы. Есть идеи?Почему C# позволяет инициализировать переменные статического класса в нестационарном конструкторе?
public class customer
{
public string Name;
public customer()
{
Name = "C1";
Console.WriteLine("creating customer " + Name);
}
}
class Program
{
public static customer cust;
public Program()
{
cust = new customer(); //Why is this allowed i.e. initialize a static variable in non-static constructor?
}
static void Main(string[] args)
{
Program program = new Program();
program = new Program();
Console.Read();
}
}
Почему это не должно допускать этого? Что делать, если вы хотите инициализировать статическую переменную при создании экземпляра класса? Или, возможно, увеличивайте счет каждый раз, когда объект будет обновлен. –
Вы можете обновить его из * любого * метода, нет ничего особенного в конструкторе. Вы забыли объявить это * readonly *? –