Yoa*_* R. 1 c# interface compile-time
我想创建一个List<System.Type> listOfTypesOfGlasses
,在这里Type
必须实现一个特定的接口IGlass
,这样我就可以用的眼镜类型加载它.有没有办法在编译时强制执行这个约束(必须实现IGlass
)?
实现隐藏列表的方法/类.
class YourClass {
// intentionally incomplete
private List<Type> listOfTypesOfGlasses;
public void AddToList<T>() : where T: IGlass
{
listOfTypesOfGlasses.Add(typeof(T));
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:下面是原始答案,假设这Type
意味着占位符,而不是System.Type
.
你需要做的就是List<IGlass>
.
要么
你应该编写自己的包装类,List<T>
它有约束.
要么
子类List<T>
并将通用约束放在它上 - 但是不鼓励这种做法.
归档时间: |
|
查看次数: |
599 次 |
最近记录: |