0

だから私は以下を持っていますが、それは間違っているようです。

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

私が達成したかったのは、次のような 2 つの (アドレス - 文字列、およびポート - ロング) があるため、propertyOfPorts に値を割り当てることです。

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 に答える