2014-03-26 2 views
0

У меня есть такие свойства, какInitilize объект недвижимости

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); 

Я немного смущен Initialize объект. Должны ли мы определить его первый

CResource = new ChannelResource(); 

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

CResource = TServer.GetChannel(); 

Мой исходный код имеет инициализацию CResource.

+2

Это зависит от того, что находится в 'GetChannel()'. Если это обрабатывает создание * и/или * извлечение «ChannelResource», тогда вы должны иметь возможность просто «CResource = TServer.GetChannel();' –

ответ

1

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

CResource = new ChannelResource(); 

Кроме того, вы можете убедиться, что telephonyServer не нуль перед вызовом TServer.GetChannel();

+0

Я использовал сторонние инструменты, не уверен в этом. См. Http://help.voiceelements.com/html/M_VoiceElements_Client_TelephonyServer_GetChannel.htm –

+0

@ Похоже, что он возвращает «ChannelResource». Так что это просто, чтобы инициализировать его, вызвав метод GetChannel. –

1

Я немного смущен инициализацией объекта. У нас есть определить его первым?

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

public ChannelResource CResource { get; set; } 

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

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

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

Смежные вопросы