and*_*cci 6 c# generics interface constraints
我希望在C#3.5中实现这样的目标:
public void Register<T>() : where T : interface {}
Run Code Online (Sandbox Code Playgroud)
我可以用类或结构来做,但是如何使用接口呢?
LBu*_*kin 11
如果您要求向特定接口添加约束,那么这很简单:
public void Register<T>( T data ) where T : ISomeInterface
Run Code Online (Sandbox Code Playgroud)
如果您询问某个关键字是否像类或结构一样存在,以限制T的可能类型范围,那么这是不可用的.
虽然你可以写:
public void Register<T>( T data ) where T : class // (or struct)
Run Code Online (Sandbox Code Playgroud)
你不能写:
public void Register<T>( T data ) where T : interface
Run Code Online (Sandbox Code Playgroud)