日期:2014-05-18  浏览次数:20367 次

静态类、抽象类、.Net Cache问题
1..net   catch和静态类(静态方法)都是公共调用的内存片,那么它们之间在使用上有啥区别呢?(是使用上的区别)可不可以把一个Dataset装入静态类,然后把静态类当作Cache来用?
2.如果一个抽象类中仅包含静态方法(例如SqlHelper),那么这个抽象类和静态类又有什么不同?

------解决方案--------------------
up
------解决方案--------------------
1..net catch和静态类(静态方法)都是公共调用的内存片,那么它们之间在使用上有啥区别呢?(是使用上的区别)可不可以把一个Dataset装入静态类,然后把静态类当作Cache来用?

catch可以自定义时间,静态类不可以,个人感觉静态访问比catch快,可以把DataSet装入静态类,但是内存会扩大,当再把这个静态变量为null时,内存不会减下来,本人曾试过。

2.如果一个抽象类中仅包含静态方法(例如SqlHelper),那么这个抽象类和静态类又有什么不同?
抽象类和静态类是两个不同的概念,抽象类不能实例化,静态类不用实例化


以上个人愚见,希望能帮到!-_-#
------解决方案--------------------
个人感觉为了调用起来方便和提高速度
------解决方案--------------------
抽象类与静态类 语义 上是不同,他们没有直接的关系

抽象类属于 OO 的概念

相反 静态类,实际上为了满足 OO 中便于处理“全局函数”“全局变量”而出现的,

一个普通类的也可以定义 静态成员,

声明为静态类,说明这个类,不会存在实例对象,或者实例化这个类没有实际意义,故设计者将其声明为 static,避免使用者实例会此类,这里 static 仅仅保证了语义的明确性。

本来,C# 是为 简单性,然而多了这么多概念,反而让使用者糊涂了