这些方法签名有什么区别?
public void T MyMethod<T>(T parameter)
Run Code Online (Sandbox Code Playgroud)
和
public void T MyMethod<T>(T parameter) where T : class
Run Code Online (Sandbox Code Playgroud)
他们似乎有相同的结果......那么做where T : class什么呢?
小智 10
在第二种方法中,T只能是一个类,不能是结构类型.
请参阅类型参数约束(C#编程指南):
哪里T:上课
type参数必须是reference [class]类型 ; 这也适用于任何类,接口,委托或数组类型.
在第一个中,您可以使用非ref类型调用它
MyMethod<int>(10);
Run Code Online (Sandbox Code Playgroud)
这不适用于第二个版本,因为它只接受ref类型!
| 归档时间: |
|
| 查看次数: |
9788 次 |
| 最近记录: |