您的位置:首页 > 编程语言 > C#

C#泛型编程指导原则(十、十一)

2007-09-14 19:10 281 查看

Item 10: Prefer Type Inference with Generic Methods优先使用泛型方法的类型推测

泛型方法的最帅的特性就是推测参数类型的能力,该特性可以消除为每个对泛型方法的调用者显式提供参数类型的需要。这对整个代码的可维护性、可读性都有着显著的影响。
如:
public class TypeInference
{
public void MyInferenceMethod<I, J>(I param1, J param2) { }
public void MakeInferenceCall ()
{
MyInferenceMethod(“TestVal”, 122);
MyInferenceMethod(122, “TestVal”);
MyInferenceMethod(new Order(), 833.22);
}
}
上面使用了泛型方法的类型推测特性。这使得对泛型方法的调用变得透明了。这些调用看起来和非泛型方法的调用没有区别,看起来就是是overloaded一样。

Item 11: Don’t Mix Generic and Non-Generic Static Methods不要混淆泛型静态方法与非泛型静态方法

如果在泛型类中同时又有泛型静态方法与非泛型静态方法,就很容易造成混乱。
如有这样一个类:
public class TestClass<T>
{
public static void Foo() {}
public static void Foo<T>() {}
}
客户这样调用的话:
TestClass<string>.Foo();
TestClass.Foo<string>();
将产生很大的混乱。
出现这种情况的处理方法很简单:修改方法名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: