Недавно в обсуждении с коллегами возник вопрос: есть ли разница между инициализацией статического поля при объявлении и инициализацией его в статическом конструкторе. Т.е. отличаюся ли типы Test в примере ниже:
public class Test
{
public static object o = new object();
}
public class Test
{
public static object o;
public static Test()
{
o = new object();
}
}
Оказывается отличаются. Более того второй пример абсолютно идентичен следующему:
public class Test
{
public static object o = new object();
public static Test()
{
}
}
Подробные объяснения почему так получилось читаем здесь.
No comments:
Post a Comment