0

所以我有以下内容,它似乎不正确。

var classAsm =  assembly.GetExportedTypes().Where(o => o.FullName == "iControl.CommonAddressPort").First();
Array propertyOfPorts = Array.CreateInstance (classAsm, 1,1);

我想要实现的是为 propertyOfPorts 分配值,因为有 2 个(地址 - 字符串和端口 - 长),例如这个:

propertyOfPorts.address = "12.2.2.2";
propertyOfPorts.port = 80;

任何帮助表示赞赏。

4

1 回答 1

1

我个人会先做一个类,然后使用一个列表。

public class PortProperties {
    public String Address { get; set; }
    public long Port { get; set; }
}

然后初始化列表:

var propertiesOfPorts = new List<PortProperties>();

然后添加它:

propertiesOfPorts.add( new PortProperties {
    Address = "12.2.2.2",
    Port = 80
});

然后使用它:

PortProperties firstPort = propertiesOfPorts[0];
String address = firstPort.Address;
long port = firstPort.Port

使用这种方法,很容易准确地定义你想要的。否则 2D 数组或 3D 数组会变得非常混乱。例如,也许对于这些端口中的每一个,我需要定义与该特定端口相关的其他此类信息的另一个列表(因此使其成为潜在的 3D 数组),我只需在 PortProperties 类中包含一个列表对象,简单易行去理解。

public class PortProperties {
    public String Address { get; set; }
    public long Port { get; set; }
    public List<String> otherPropList { get; set; }
}
于 2016-03-22T17:11:58.020 回答