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++泛型编程思想方法总结

C++用模板来实现泛型编程,模板分为函数模板和类模板。 基本概念:泛型编程范式GP:模板也叫参数类型多态化。 在编译时期确定,相比面向对象的虚函数多态,能够有更高的效率。 泛型编程是从一个抽象层面描述...
  • Blues1021
  • Blues1021
  • 2015年08月15日 15:39
  • 4418

Java泛型 泛型类型的继承规则

泛型类型的继承规则可能不能凭直觉的来想当然。下面举个例子来看看泛型类型的继承规则。 首先有几个辅助类: package generic; public class Person extends An...
  • l294265421
  • l294265421
  • 2015年06月08日 16:04
  • 2967

Java -- 泛型类型的继承规则(四)

Java -- 泛型类型的继承规则(四) 使用泛型类时,我们有必要连接一些泛型类之间有关继承和子类型的准则。先看要使用的代码示例:class Basic { public void f() {...
  • csdn_of_coder
  • csdn_of_coder
  • 2016年09月17日 17:16
  • 2316

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

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

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

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

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

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

C#2.0 锐利体验系列课程(1):泛型编程.pdf

  • 2007年07月28日 09:57
  • 2.49MB
  • 下载

VS2010轻松学习C#-从零到深入-天轰穿.NET4趣味编程视频教程_泛型实例

  • 2017年07月26日 01:44
  • 72.62MB
  • 下载

VS2010轻松学习C#-从零到深入-天轰穿.NET4趣味编程视频教程_第23讲:泛型入门

  • 2017年07月26日 01:41
  • 22.45MB
  • 下载

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

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

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