C#泛型编程指导原则(六、七)

原创 2007年09月14日 14:06:00

Item 6: Use Expressive, Consistent Type Parameter Names使用富有表现力的、前后一致的类型参数名称

对于该问题,有两大基本阵营。一方认为“单个字母”的类型参数名称更好,因为它减少了泛型声明的签名的大小,这是被大多数C++模板库所使用的模式。另一方认为一个字母过于简短,不足以表达类型参数的本质意义,他们希望用长一点的、更具有表述性的名字。

用中国话最好来解释了:具体问题具体分析,在两种方法之间折中处理。

下面的例子极好的表现了这一点:

public class Dictionary<K, V> {}

public class Dictionary<TKey, TValue>

Item 7: Use Aliasing for Complex or Frequently Used Types对复杂的或者频繁使用的类型,使用别名

简单的不需要解释J

看例子J

public void ProcessItem(MyType1<long, double, string> value, int status)

 {

MyType1<long, double, string> x = new MyType1<long, double, string>();

if (status == 1)

 {

MyType1<long, double, string> y = value;

}

Else

 {

Nullable<MyType1<long, double, string>> z =

new Nullable<MyType1<long, double, string>>();

}

}

使用别名后可以简化为:

using MType = MyType1<long, double, string>;

public void ProcessItem(MType value, int status)

 {

MType x = new MType();

if (status == 1)

{

MType y = value;

}

else

{

Nullable<MType> z = new Nullable<MType>();

}

}

 

C#泛型编程指导原则(二)

Item 2: Replace Objects with Type Parameters使用类型参数取代Object类型在使用泛型之前,程序员一般都依赖于Object类型来获得通用性。如果有这样一个类...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 13:28
  • 674

C#泛型编程指导原则(19--23)

Item 19: Use Static Data Members with Caution小心使用静态数据成员对于非泛型类来说,静态数据成员被所有该类的对象所共享。然而,对于泛型类型,静态数据成员是被...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 19:15
  • 1329

C#泛型编程指导原则(17--18)

Item 17: Avoid Multiple Constraint Ambiguity避免多重约束中的含糊当使用约束的时候,可以选择对任何一个类型参数使用多重约束。事实上,你可以将单独的类约束与多重...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 19:14
  • 861

C#泛型编程指导原则(五)

Item 5: Genericize Types That Vary Only by a Data Type将由数据类型引起变化的类型泛型化如果你通读以下自己代码中现存的类、方法、接口、委托,你会发现...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 13:53
  • 744

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

Item1:Use  Generic Collections 使用泛型集合数据集合是泛型最典型的应用之一。在你现存的代码里,可能已经遍布了ArrayList和HashTable。在使用泛型之前,你可能...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 13:27
  • 1007

C#泛型编程指导原则(15--16)

Item 15: Select the Least Restrictive Constraints选择最少限制的约束在给类型参数选择约束条件的时候,最好只加入最少的限制,不要加入不必要的附加限制。下面...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 19:13
  • 660

C#泛型编程指导原则(12--14)

Item 12: Custom Collections Should Extend Collection自定义集合应当扩展自Collection在一些时候,你很希望引入自己定义的泛型集合。典型来讲,自...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 19:11
  • 678

C#泛型编程指导原则(三、四)

Item 3: Replace System.Type with Type Parameters用类型参数取代System.Type在一些情况下,你可能在方法的签名中使用过System.Type引用,...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 13:30
  • 580

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

Item 10: Prefer Type Inference with Generic Methods优先使用泛型方法的类型推测泛型方法的最帅的特性就是推测参数类型的能力,该特性可以消除为每个对泛型方...
  • MaybeHelios
  • MaybeHelios
  • 2007年09月14日 19:10
  • 580

[C++]模板与泛型编程

模板与泛型编程 本文尝试着介绍对泛型编程的理解,从而扩展我们的template编程。泛型编程是C++中非常重要的一部分,它使得我们节省了很多编写不同代码的体力。 1. 了解隐式接口和编译器多态与O...
  • stary_yan
  • stary_yan
  • 2016年05月04日 11:56
  • 1146
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#泛型编程指导原则(六、七)
举报原因:
原因补充:

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