1

У меня есть два класса:C# Initializing Внутренних свойств

public class TmpClass 
{ 
    public TmpClass() 
    { 
     InnerClass = new InnerClass(); 
    } 

    public InnerClass InnerC { get; set; } 
} 

public class InnerClass 
{ 
    public string Name { get; set; } 
} 

И можно инициализировать свойство InnerClass как это, becouse таким образом VS2010 не делает это.

TmpClass a = new TmpClass() 
{ 
    InnerC.Name = "blabla" 
} 
+0

вы рассматривали использование конструкторов? –

ответ

1

Используйте следующий фрагмент кода:

TmpClass a = new TmpClass 
{ 
    InnerC = new InnerClass { Name = "Name" } 
}; 

Обратите внимание, что оператор new TmpClass будет вызывать конструктор по умолчанию. Также обратите внимание: у вас неправильное объявление конструктора. Изменение TmpClass конструктора для следующего образца кода, так что он будет компилировать:

public TmpClass() 
{ 
    InnerC = new InnerClass(); 
} 
0
TmpClass a = new TmpClass() 
{ 
    InnerC = new InnerClass 
    { 
     Name = "blabla" 
    } 
}