所以,如果有一个名为class
Bar
,为什么我不能访问enum
财产或在这种情况下的type
<T>
任何static
财产enum
属性。我隐含声明<T>
是type
Bar
。只是想知道它是否仅仅是泛型的限制或其本身。从通用引用类型获取一个枚举或静态属性<T>
修订
在@Frederik Gheysels的答案,它提到,如果我有一个简单地从Bar
获得的class
,我不会有机会获得enum
或任何static
base
。这是不正确的,这编译和工作。
public class Foo : Bar
{
public Foo()
{
// This all works
var address = this.Address;
var car = Foo.Cars.Honda;
var name = Foo.Name;
}
}
public class Bar
{
public static string Name { get; set; }
public string Address { get; set; }
public enum Cars
{
Honda,
Toyota
}
}
你为什么要*能够做到这一点?这里的用例是什么? – 2012-02-10 16:03:38
类似于http://stackoverflow.com/questions/196661/calling-a-static-method-on-a-generic-type-parameter – AlG 2012-02-10 16:03:40
你是否试图完成类似于[this](http:// stackoverflow .COM /问题/ 4704201 /什么,是最最好的方式对覆盖-枚举)? – 2012-02-10 16:05:53