字段不能在 C# 中通用吗?

Can't fields be generic in C#?

我正在阅读 Jon Skeet 的《C# 深入》一书,有一部分让我感到困惑:

Methods and nested types can be generic, but all of the following have to be nongeneric:

  • Fields
  • Properties
  • Indexers
  • Constructors
  • Events
  • Finalizers

我测试了一下,fields(class中的一个变量)可以泛型,我是不是没看懂?这让我怀疑其他人。

类 和方法可以引入新的泛型类型参数,该列表中的其他方法可以基于该类型参数定义,但不能引入新的。

这一切都很好;

class ClassName<T>{
    private T FieldName;
    private T PropertyName { get; set; }
    private R GenericMethod<R>(T t, R r) { ... }
}

但不是;

class ClassName{
    private T FieldName<T>;
}