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

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

Item 19: Use Static Data Members with Caution小心使用静态数据成员

对于非泛型类来说,静态数据成员被所有该类的对象所共享。然而,对于泛型类型,静态数据成员是被所有拥有相同类型参数的类型所共享。

如:

public class StaticData<T>

{

private static int _staticData = 0;

public void IncrementCount()

 {

_staticData++;

}

}

通过下面的方法来测试:

public void TestStaticData()

 {

StaticData<String> instance1 = new StaticData<String>();

instance1.IncrementCount();  // 1

StaticData<int> instance2 = new StaticData<int>();

instance2.IncrementCount();  // 1

StaticData<String> instance3 = new StaticData<String>();

instance3.IncrementCount();  // 2

}

请注意注释中标注的数字。instance1instance3共享同一个静态数据成员_staticData

Item 20: Use Interfaces in Lieu of Classes使用接口取代类

原理不讲了,所有OOP人员都应该明白的。

Item 21: Use Comparer<T> for All Type Comparisons为所有的类型比较使用Comparer<T>

Item 22: Use Nullable<T> for Optional Values为可选择的值使用Nullable<T>

Item 23: Use EventHandler<T> for All Events为所有事件使用EventHandler<T>

 

相关文章推荐

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

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

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

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

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

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

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

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

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

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

c#泛型编程基础

泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。 例子代码: class Program     {         static...
  • liziki
  • liziki
  • 2012年07月21日 11:12
  • 610

C#高级编程第6版doc].第09章_泛型

  • 2013年08月10日 19:27
  • 205KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#泛型编程指导原则(19--23)
举报原因:
原因补充:

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