我正在使用C#.我从未见过像这样的方法声明
private AuthorizationContext GetAuthorizationContext<TController>() where TController : ControllerBase, new()
{
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释一下这些意味着什么.我对泛型类有清晰的认识.我的查询部分是'其中TController:ControllerBase,new()'
这是一种类型约束.它指定泛型类型(TController)必须满足的某些条件.在这种情况下,它必须从ControllerBase派生并具有无参数构造函数.
http://msdn.microsoft.com/en-us/library/d5x73970.aspx
有时将ANY类型用作泛型类型参数是没有意义的.例如,如果我想确保类型T具有某些方法,我可以强制它实现给定的接口.这提供了额外的类型安全性和编译时检查.