Инициализировать объект свойства

У меня есть свойства, такие как

public class TeleServerTest
{
 public TelephonyServer TServer { get; set; }
 public ChannelResource CResource { get; set; }

В конструкторе

public TeleServerTest(TelephonyServer telephonyServer)
 {
 TServer = telephonyServer;
 CResource = TServer.GetChannel();

Вызов TeleServerTest из другого класса

public static TelephonyServer MessagingTelephonyServer { get; set; }
 .....
MessagingTelephonyServer = new TelephonyServer(sIpaddress, "username", "password");
TeleServerTest test= new TeleServerTest(MessagingTelephonyServer);

Я немного запутался в инициализации объекта. Нужно ли сначала определить его

CResource = new ChannelResource();

Затем в конструкторе

CResource = TServer.GetChannel();

У моего исходного кода есть инициализация CResource.

2 ответа

Если TServer.GetChannel() возвращает ChannelResource, то вам не нужно инициализировать его следующим образом:

CResource = new ChannelResource();

Также вы можете убедиться, что telephonyServer не имеет значения null до вызова TServer.GetChannel();


Я немного запутался в инициализации объекта. Должны ли мы сначала определить его?

CResource уже определен как свойство.

public ChannelResource CResource { get; set; }

Затем в конструкторе CResource = TServer.GetChannel();

Это не вызов конструктора, он вызывает метод экземпляра TelephonyServer который возвращает объект типа ChannelResource, который присваивается CResource.

Вызов конструктора для CResource = new ChannelResource(); вероятно, сделано в TServer.GetChannel(); поэтому вам не нужна инициализация в вашем коде.

licensed under cc by-sa 3.0 with attribution.