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

原创 2007年09月14日 19:10:00

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

将产生很大的混乱。

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

 

C#语法小知识(十一)泛型

泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。 您可以通过数据类型的替代...

STL与泛型编程<十一>:Insert(安插)迭代器

介绍用来将“赋新值操作”转换为“安插新值”操作,通过这种迭代器,算法可以执行安插(insert)操作而非覆盖(overwrite)操作。所有insert迭代器都属于output迭代器。 - Inse...
  • MonroeD
  • MonroeD
  • 2016年03月28日 20:34
  • 332

C#类库处理异常指导原则

作为一个类库开发的新手,在面对Exception时,一直不知道所措。阅读了的异常处理部分,记录下一些基本的原则,供日后查询并与大家分享。欢迎高手指点一二。 一、善用finally块  ...
  • kmguo
  • kmguo
  • 2013年11月28日 23:54
  • 2469

C# 2.0中泛型编程思想分析

  • 2009年11月23日 20:23
  • 20KB
  • 下载

[.Net码农]C#泛型编程

http://www.cnblogs.com/kid-li/archive/2006/11/29/577045.html 泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类...

XML 泛型 控件 的C#编程示例

  • 2007年12月29日 15:33
  • 273KB
  • 下载

C# 2.0中泛型编程初级入门教程

  • 2009年09月21日 17:43
  • 9KB
  • 下载

C#高级编程二十七天----创建泛型类

创建泛型类 首先介绍一个一般的,非泛型的简化链表类,可以包含任意类型的对象,以后再把这个类转化为泛型类. 在立案表中,一个元素引用下一个元素.所以必须创建一个类,他将对象封装在链表中,并引用下一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#泛型编程指导原则(十、十一)
举报原因:
原因补充:

(最多只允许输入30个字)