我有这堂课:
[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列表)?
答案 0 :(得分: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;
答案 1 :(得分:0)
您不能将静态类用作类型参数。因此,在您的情况下,您不能:
public List<Connection> { get; set; }
有关详细信息,请参阅Jon Skeet的this答案。
我建议研究面向对象编程的SOLID原理,并尝试将“连接”类的功能抽象为多个。如果您提供有关您正在尝试做的更多信息,我将很乐意提出建议。