0

私はこのクラスを持っています:

[DataContract]
public class Connection
{
    [DataMember]
    public string UserName { get; set; }

    public Connection(string userName)
    {
        UserName = userName;
    }
}

今、私はこのクラスをそのまま必要としていますが、私のプロジェクトの一部では、実際には次のようなクラスを使用します:

public static class Connection
{
    public static string UserName { get; set; }

    static Connection()
    {
    }
}

このコードを一緒にマージする方法はありますか?プロジェクトでこのクラスの両方のバージョンを使用できます (接続の静的な単一インスタンスが必要な場所と、接続のリストが必要な場所)?

4

2 に答える 2

5

次のようなコードをマージできます。

[DataContract]
public class Connection
{
    [DataMember]
    public string UserName { get; set; }

    public Connection(string userName)
    {
        UserName = userName;
    }

    public static Connection Default { get; set; }

    static Connection()
    {
        Default = new Connection("username");
    }

}

...そして次のように使用します:

List<Connection> connections = new List<Connection>();

.. またはこのように:

string defaultConnectionUserName = Connection.Default.UserName;
于 2013-09-24T15:08:17.123 に答える
0

静的クラスを型引数として使用することはできません。したがって、あなたの状況では、次のことはできません。

public List<Connection> { get; set; }

詳細については、Jon Skeet によるこの回答を参照してください。

オブジェクト指向プログラミングの SOLID 原則を調べて、「接続」クラスの機能を複数に抽象化することをお勧めします。あなたがやろうとしていることについてより多くの情報を提供していただければ、私は喜んで提案します。

于 2013-09-24T15:04:48.557 に答える