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()
    {
    }
}

有没有办法将这段代码合并在一起,所以我可以在我的项目中使用这个类的两个版本(在某个地方我想有一个静态的、单个 Connection 实例,但在其他地方我想有一个 Connections 列表)?

4

2 回答 2

5

You can merge code like this:

[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");
    }

}

... and use it like this:

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

.. or like this:

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 回答