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>();
将产生很大的混乱。
出现这种情况的处理方法很简单:修改方法名称。
相关文章推荐
- C#泛型编程指导原则(六、七)
- C#泛型编程指导原则(一)
- C#泛型编程指导原则(17--18)
- c#编程指南(三) 泛型委托(Generic Delegate)
- 如何:为泛型列表创建迭代器块(C# 编程指南)
- Halcon C#.net 编程指导(5): 异常处理(Error Handing)
- C#泛型编程指导原则(二)
- C#开发的两个基本编程原则的深入讨论
- C#编程之经典算法——排序(十一)
- C#语法小知识(十一)泛型
- C#开发的两个基本编程原则的深入讨论
- ASP.NET 2.0 中泛型的使用(C# 编程指南)
- C#模板编程(1):有了泛型,为什么还需要模板?
- 泛型 (C# 编程指南)
- C#/C++ 模板和 C# 泛型之间的区别(C# 编程指南
- Java编程思想学习(十一) 泛型
- 泛型接口(C# 编程指南)
- C++ 模板和 C# 泛型之间的区别(C# 编程)
- 泛型接口(C# 编程指南)
- 泛型的优点(C# 编程指南)