This is a mirror of official site: http://jasper-net.blogspot.com/

Интересно о C#: странное поведение структур

| Wednesday, February 24, 2010
Рассмотрим следующий код:

struct S
{
 private string blah;
 public S(string blah)
 {
     this.blah = blah;
 }
 public void Frob()
 { // whatever
 }
}

Следующий код будет работать:

S s1 = new S();
s1.Frob();

Каждая струкура имеет конструктор по умолчанию, в котором все поля иницилизируются со значениями по умолчанию. А как насчет этого кода?

S s2;
s2.Frob();

Похоже, мы увидем ошибку "Use of unassigned local variable 's2'". Интересной особенностью C# компилятора является тот факт, что ошибка присвоения будет выдана лишь в том случае, если структура компилируется с исходного кода. В случае, если структура находится в подключенной библиотеке, ошибка не будет выдана! Рассмотрим другой пример:

Read more: Microsoft User Group

Posted via email from jasper22's posterous

0 comments: