在静态类中定义Generic List属性

时间:2012-12-14 09:09:25

标签: c# list generics

我需要使用静态类在运行时保存一些简单的值:

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

     ...more properties
}

我现在需要存储一个对象列表 - 根据我定义的类进行输入。此List将重用于不同的Object类型,因此我认为将其定义为Generic 这就是我被困住的地方:如何在静态类中定义一个属性,该属性将在应用程序执行的不同时间包含不同类型的列表?

需要像:

    public List<T> Results {get; set;}

1 个答案:

答案 0 :(得分:10)

您需要将您的班级定义为Generic班级。

public static class Globals<T>
{
    public static string UserName
    { get; set; }
    public static List<T> Results { get; set; }

}

以后您可以像以下一样使用它:

Globals<string>.Results = new List<string>();

您的财产Results也需要是私密的。您可以考虑公开您的方法与列表进行交互,而不是通过属性公开列表。

请参阅:C#/.NET Fundamentals: Returning an Immutable Collection