C# Инициализация внутренних свойств
У меня есть два класса:
public class TmpClass
{
public TmpClass()
{
InnerClass = new InnerClass();
}
public InnerClass InnerC { get; set; }
}
public class InnerClass
{
public string Name { get; set; }
}
И возможно ли инициализировать свойство InnerClass следующим образом, потому что таким образом VS2010 не может это сделать.
TmpClass a = new TmpClass()
{
InnerC.Name = "blabla"
}
2 ответа
Решение
Используйте следующий фрагмент кода:
TmpClass a = new TmpClass
{
InnerC = new InnerClass { Name = "Name" }
};
Обратите внимание, что заявление new TmpClass
вызовет конструктор по умолчанию. Также обратите внимание: у вас неправильное объявление конструктора. + Изменить TmpClass
конструктор для следующего примера кода, чтобы он скомпилировал:
public TmpClass()
{
InnerC = new InnerClass();
}
TmpClass a = new TmpClass()
{
InnerC = new InnerClass
{
Name = "blabla"
}
}