代码检查:泛型类型中的静态字段或自动属性
在绝大多数情况下,在泛型类型中使用静态字段或自动属性是错误的标志。 原因是泛型类型中的静态成员不会在不同的具体构造类型实例之间共享。 这意味着对于一个具有 MyGeneric<T> 的泛型类 public static string MyProp { get; set; }, MyGeneric<int>.MyProp 和 MyGeneric<string>.MyProp 的值是完全不同且独立的。
如果您需要在具有不同泛型参数的实例之间共享静态字段,请定义一个非泛型基类来存储您的静态成员,然后将您的泛型类型设置为继承该类型。
最后修改日期: 2025年 9月 26日