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"
    }
}
Другие вопросы по тегам