关闭

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

标签: 编程c#methodsclass
546人阅读 评论(0) 收藏 举报
分类:

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>();

将产生很大的混乱。

出现这种情况的处理方法很简单:修改方法名称。

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:306505次
    • 积分:4271
    • 等级:
    • 排名:第7070名
    • 原创:79篇
    • 转载:33篇
    • 译文:55篇
    • 评论:103条
    文章分类
    最新评论