【发布时间】:2010-10-27 12:35:42
【问题描述】:
我想编写如下函数
public void Foo(System.Type t where t : MyClass)
{ ... }
换句话说,参数类型是System.Type,我想将允许的Types 限制为从MyClass 派生的那些。
有没有办法在语法上指定这个,或者t必须在运行时检查?
【问题讨论】:
-
也许你的方法是错误的。在我看来,在 MyClass 上创建实例方法 Foo() 会容易得多,这样所有派生类都可以调用 Foo 并且您可以使用 this.GetType() 执行相同的行为而无需额外的健全性检查.
-
我这样做是为了反射功能——在函数中,我需要访问类型的属性。
标签: c# .net types polymorphism