Don*_*nut 13 c# generics intermediate-language type-constraints type-parameter
如果我想创建一个以实例IList作为参数(或任何其他接口,但让我们IList用作示例)的方法,我可以创建一个带有类型约束的泛型方法,例如:
public static void Foo1<T>(T list) where T : IList
{
}
Run Code Online (Sandbox Code Playgroud)
或者,我可以创建一个IList直接获取参数的方法:
public static void Foo2(IList list)
{
}
Run Code Online (Sandbox Code Playgroud)
对于所有意图和目的,似乎这些方法的行为完全相同:
List<string> myList = new List<string>();
Foo1(myList);
Foo2(myList);
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题 - 这两种方法之间的区别是什么?似乎第二种方法更具可读性; 我应该注意哪些其他差异(生成不同的IL等)?提前致谢.
| 归档时间: |
|
| 查看次数: |
654 次 |
| 最近记录: |