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

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

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

C#数据结构和算法学习系列二----泛型编程

面向对象编程的问题之一就是所谓“代码膨胀”的特征。为了说明方法参数所有可能的数据类型而需要重载某种方法或重载一套方法集合的时候,就会发生某种类型的代码膨胀。代码膨胀的解决方案之一就是使某个值呈现多种数...

c#泛型编程基础

泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。 例子代码: class Program     {         static...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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