基础问题C#中static有啥用?

Lorenes 2003-10-17 04:27:54
public static string Abc(){
return(@"abcdefg");
}

public string Efg(){
return(@"Efghdks");
}



以上两个function 有什么区别?
运行速度,或内存占用有区别么?
...全文
1649 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolookk 2003-11-13
  • 打赏
  • 举报
回复
学习学习再学习!
我是新手,大家多多指教!
Lorenes 2003-11-13
  • 打赏
  • 举报
回复
在Web ASP.NET 中 不是static 的function 也不用实力化啊,

不知道执行效率和性能上有没有影响.
zhpsam109 2003-11-13
  • 打赏
  • 举报
回复
使成员不必实例化就可以访问!
Lorenes 2003-11-13
  • 打赏
  • 举报
回复
up up up
Lorenes 2003-10-17
  • 打赏
  • 举报
回复
嗯,当然知道是实例化和非实例化的区别.

从内存上来说, 用 new 实例化的时候,就创建了所有静态空间的内存空地址.

我所讨论的是,不加static的静态函数,执行性能上是否会受影响.
alron 2003-10-17
  • 打赏
  • 举报
回复
学习!
13003517962 2003-10-17
  • 打赏
  • 举报
回复
static是所有实例共有的方法或变量
没有它,每一个实例都各是各的,
新来的,请给点分
shajie 2003-10-17
  • 打赏
  • 举报
回复
up
烤火的鱼 2003-10-17
  • 打赏
  • 举报
回复
如果不加static ,使用该类时必须实例化,而加了static就可不用创建一个实例而直接使用
Stevetan81 2003-10-17
  • 打赏
  • 举报
回复
在功能上没有区别,但是用法有不同。
static不能在 实例 中被调用,通常是由某个类来暴露的。
比如:
class example{
private example(){}
public static string a(){return "a";}
public static string b(){return "b";}
}
这个类不能被实例化,它暴露了两个static方法供使用。
herofyf 2003-10-17
  • 打赏
  • 举报
回复
一个是类调用,一个是对象调用。
xz_king 2003-10-17
  • 打赏
  • 举报
回复
Static 函数在使用时不用实例化它所在的类,直接用就得了。就象Convert.ToInt32()等这些函数。
不用Static的函数,就必须实例化它所在的类进行使用。
saucer 2003-10-17
  • 打赏
  • 举报
回复
you should read a basic C# programming book

to call Abc(), you do
string s = YourClassName.Abc();

to call Efd(), you need to create an instance first

YourClassName ycn = new YourClassName();
string s = ycn.Efd();


but in Efd(), you can use instance memeber variables directly, in Abc(), you can only use static variables directly
  • 打赏
  • 举报
回复
其实加上static就不用实例化类了,无形中加快了速度.
oldhunter 2003-10-17
  • 打赏
  • 举报
回复
如果是web程序有影响了.
Cache对象就是static类,所有用户都用一个内存区
lbywyj 2003-10-17
  • 打赏
  • 举报
回复
楼上的各位都谈得很不错,
对函数:上面说的已经很清楚了,static ,直接里调用,是属于该类的;否则,是属于该实例话的对象的;

zhongwanli 2003-10-17
  • 打赏
  • 举报
回复
1.静态成员,访问不需要实例化

2.非表态成员,访问需要实例化
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
最大限度地提高代码的可重用性,改写类的实例方法,把参数类型改成接口,选择最简单的参数接口类型
91bct 2003-10-17
  • 打赏
  • 举报
回复
性能上我认为差别不大,或者说感觉不到的。但是我认为调用非静态成员是
通过new一个实例,当不再用这些成员时实例自然被dispose,这样就实现内存回收,而使用静态成员是直接使用类名来访问的,它只有在退出系统的时候可能才会实现内存回收吧。
这只是我个人的看法,也许理解有误。
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
除了内存的区别外,
还是代码维护的问题了。

当参数个数改变了,实例方法修改起来比较方便。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧