eou*_*3hf 10 .net c# generics overloading c#-4.0
可能重复:
通用约束,其中T:struct和T:class
是否有一个特殊的原因是您不能在C#中使用互斥的类型约束来重载泛型方法?例如,采取以下方法:
T DoSomething<T>(T arg) where T : class
{ /* Do something */ }
T DoSomething<T>(T arg) where T : struct
{ /* Do something */ }
Run Code Online (Sandbox Code Playgroud)
并试着用它们来调用它们
DoSomething("1");
DoSomething(1);
Run Code Online (Sandbox Code Playgroud)
我看到它的方式,DoSomething()方法就它们将采用的参数是互斥的 - 第一个采用引用类型,第二个采用值类型.编译器应该能够告诉使用字符串参数的DoSomething调用转到第一个方法,并且使用int参数的DoSomething调用转到第二个方法.
我在遗传学上遗漏了一些概念吗?或者这只是一个未在C#中实现的功能?
| 归档时间: |
|
| 查看次数: |
6349 次 |
| 最近记录: |