初始化属性对象

时间:2014-03-26 18:42:54

标签: c#

我有

等属性
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 个答案:

答案 0 :(得分:1)

如果TServer.GetChannel()返回ChannelResource,则您不需要像这样初始化它:

CResource =  new ChannelResource();

在调用telephonyServer

之前,您可能还需要确保TServer.GetChannel();不是 null

答案 1 :(得分:1)

  

我对初始化对象感到困惑。我们必须这样做吗?   首先定义它?

CResource已被定义为属性。

public ChannelResource CResource { get; set; }
  

然后在构造函数CResource = TServer.GetChannel();

它不是构造函数调用,而是调用TelephonyServer的实例方法,该方法返回类型为ChannelResource的对象,该对象被分配给CResource属性。

可能在CResource = new ChannelResource();中对ChannelResource TServer.GetChannel();进行构造函数调用,这就是您不需要在代码中进行初始化的原因。