欢迎大家发表对静态类、静态方法、静态变量的看法
比如说说用静态的作用,在什么情况下会用到静态类,静态方法、静态变量
问题点数:50、回复次数:31Top
1 楼fangwancong(聪头.珠海)回复于 2006-05-27 15:07:16 得分 0
这个问题搜索一下应该会有解释。
Top
2 楼Yuna_2z(其实游戏是一艺术,而我只是身陷其中!)回复于 2006-05-27 16:07:11 得分 0
静态只有一个副本...Top
3 楼kssys()回复于 2006-05-27 16:14:31 得分 0
简单的讲,静态是全局的,不需要用New,直接就可以使用。Top
4 楼ChengKing((.net: http://blog.csdn.net/ChengKing ))回复于 2006-05-27 16:49:57 得分 0
1.静态的方法在整个应用程序其间存储在内存中,速度快,但占用内存.
class a
{
public static string b()
{
return "Hello";
}
}
用法: a.b(); //调用方便
2.动态的方法在先声明类实例才能调用类中的方法.
class a
{
public static string b()
{
return "Hello";
}
}
用法: a = new a(); a.b();
3.一般使用频繁的方法用静态方法,用的少的方法用动态的。
静态的速度快,占内存。 动态的速度相对慢些,但调用完后,立即释放类,可以节省内存
Top
5 楼diandian82(点点(nothing))回复于 2006-05-27 17:27:02 得分 30
静态类没有用过,谁能说一下,有这东西么?我只知道有静态构造函数Top
6 楼berlin8600(柏林)回复于 2006-05-27 17:36:03 得分 0
静态类可以看看Duwamish的的配置项目.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dwamish7/html/vtoriDuwamish70Overview.aspTop
7 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2006-05-27 18:07:12 得分 0
静态类 又叫静态例程类 只包含静态成员的类 2005中用
访问级别 static class 类名
{
}
来标识Top
8 楼soney12(soney)回复于 2006-05-27 19:04:36 得分 0
静态类有什么作用,在什么时候用静态类呢Top
9 楼kssys()回复于 2006-05-27 19:10:10 得分 0
比如说:System.IO.File.MoveFile....Top
10 楼anthit()回复于 2006-05-27 19:51:47 得分 0
学习学习Top
11 楼fener721()回复于 2006-05-27 22:18:59 得分 0
1、特点:
静态字段:对于一个类不管创建几个它的实例,它的静态字段在内存中只创建一个副本(这和 实例字段不同),这样可以节省资源。
静态方法:也是只存储一次(不过这一点和实例方法相同),但是它不能访问实例数据(如果 你的类的某一个方法不需要访问实例数据或实例的方法时,可以把它定义为静态方 法)
2、用途:可以用它们来定义类的最一般的特征,这些特征不会因为实例的不同而改变(这是 只创建一个副本就可以了的原因,也是静态方法不能访问实例数据的原因)。
3、用法:它们是属于类的,而不是属于实例的,所以在访问它们时在“.”前面使用类名,而是 使用实例名,这也反应出了它们是用来描述类的一般特征的。
以上是我对静态字段和静态方法一点理解,见笑了,呵呵。Top
12 楼fener721()回复于 2006-05-27 22:24:43 得分 10
>>“而是 使用实例名”
-------------
少了一个字:(应该是:而不是使用实例名Top
13 楼zeusvenus()回复于 2006-05-27 22:36:03 得分 0
看看C#语言参考
Top
14 楼diandian82(点点(nothing))回复于 2006-05-28 00:04:21 得分 0
比如说:System.IO.File.MoveFile....
========================================
这不是定义一个静态方法不就行了么?还是没有说明静态类的特点和用途。大家继续。
.Net 2.0还没有用过,不知道是不是新特性。Top
15 楼gwallan()回复于 2006-05-28 13:33:29 得分 0
一般好像都是定义静态的函数Top
16 楼henryfan1(http://henryfan.cnblogs.com)回复于 2006-05-28 14:09:18 得分 0
这个我也想进一步了解.
有时静态方法使用上真的很吸引,一调用就OK了不需要实例化然后再调用.
但同就失去了OO的特性,在重用和扩展上有时会大打折扣.
有时在设计过程就想为什么不直接一个静态方法把entity添加到数据库,
但最终还是使用类,通过基类制定上下文解决事务等问题.
但也有很多情况上下文和事务并不是什么时候都需要的.
所以一切都要看情况,不过我还是喜欢OO因为方便扩展和重用.
Top
17 楼xxqq0824(赛跑)回复于 2006-05-29 07:46:56 得分 10
很好,很好,都吧我想说的讲完了。。。
不过不同意静态了,就没有oo的概念了一说。
因为正如fener721() ( ) 所说,静态可以用它们来定义类的最一般的特征,这些特征不会因为实例的不同而改变。比如一个员工类,他们的公司就是一个公司,那么这个公司名这个字段肯定说要设成静态的好些吧?公司名字说不依据每个实例的不同而不同的,所以采用静态属性。Top
18 楼liujiwe79(专业做控件)回复于 2006-05-29 09:36:57 得分 0
静态的可以看做一个全局的,相对执行比较快Top
19 楼henryfan1(http://henryfan.cnblogs.com)回复于 2006-05-30 09:28:05 得分 0
比如一个员工类,他们的公司就是一个公司,那么这个公司名这个字段肯定说要设成静态的好些吧?
前提下能这样确定当然是好事,但你能保证这个公司不会有下属公司或地区子公司.
出现这情况你的静态成员如何处理?
对象实例依赖静态成员从一定程度上描述类受到约束.这约束是固定的难以扩展的.
Top
20 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-05-30 10:26:37 得分 0
ChengKing全部是误导……Top
21 楼diandian82(点点(nothing))回复于 2006-05-30 11:34:05 得分 0
有没有人说说静态类阿?到底有没有这个概念阿?Top
22 楼soney12(soney)回复于 2006-05-30 14:57:39 得分 0
大家继续啊Top
23 楼lzlvv(天空)回复于 2006-09-27 10:01:07 得分 0
静态类在VS2005中可以定义,在VS2003中好像不能定义的. 静态类中的成员都必须是静态的,且不能实例化对象. 所以静态类的一个作用就是其中可以包含一些"全局变量"(在C#中已经没有这个概念了).Top
24 楼yzqlee()回复于 2006-09-27 10:07:18 得分 0
upTop
25 楼Samen168(Code to coding)回复于 2006-09-27 10:18:45 得分 0
upTop
26 楼Aaron9979215(秀庭)回复于 2006-11-15 16:12:36 得分 0
upTop
27 楼sean840610(更木剑八)回复于 2006-11-15 16:28:21 得分 0
我也来UP一个,没怎么用过静态Top
28 楼OrangeSeaCoast(橙色海岸)回复于 2006-11-15 16:46:12 得分 0
呵呵,如果你用静态变量多的话,呵呵,编程是容易,就是没人敢用,太占内存了,而且不释放。再有就是如果多个地方调用静态变量,变来变去,你自己都不知道这个值是什么了。Top
29 楼OrangeSeaCoast(橙色海岸)回复于 2006-11-15 16:49:06 得分 0
静态变量一般用在项目里多个对象都要使用的变量,而且这个变量不能随意更改,再就是系统一加载这个值就要赋值。Top
30 楼woshibai110()回复于 2006-11-15 16:52:28 得分 0
dingTop
31 楼xiaoku(野蛮人(^v^))回复于 2006-11-15 16:54:07 得分 0
谢谢...
我学习了
Top




