当前位置:编程学习 > C#/ASP.NET >>

C#中类的实例方法和静态方法有何区别,什么时候用静态方法,什么时候用实力方法

比如
public class ExampleClass()
{
   public static void DoSometing(string strParam)//静态方法
    {
          //做一些事情,比如吐槽,把妹,上CSDN
    }
  public void DoSometing(string strParam)//实例方法
    {
          //做一些事情,比如吐槽,把妹,上CSDN
    }
 
}
我们调用方法可用ExampleClass.DoSometing(string strParam)
也可以这样调用 ExampleClass myClass = new ExampleClass()
  myClass.DoSometing(string strParam)
这两种方法有何不同,既然静态方法可以省去New这一步,为何不都用静态方法,这样代码还简洁 编程中国社区 --------------------编程问答-------------------- 自己先顶一个,求各路大神指点~ --------------------编程问答-------------------- http://www.cnblogs.com/NothingIsImpossible/archive/2010/07/28/1786706.html --------------------编程问答-------------------- 面向对象的三个基本特征是:封装、继承、多态,静态方法啥也体现不出来。只用静态方法方法就不是面向对象是面向方法了,面向对象有啥好处不用我说了吧。还有就是静态变量在应用程序域是唯一,在web开发中很容易出问题。 --------------------编程问答--------------------
引用 3 楼 CMIC 的回复:
面向对象的三个基本特征是:封装、继承、多态,静态方法啥也体现不出来。只用静态方法方法就不是面向对象是面向方法了,面向对象有啥好处不用我说了吧。还有就是静态变量在应用程序域是唯一,在web开发中很容易出问题。
兄弟能不能再详细点 --------------------编程问答--------------------
引用 2 楼 hjywyj 的回复:
http://www.cnblogs.com/NothingIsImpossible/archive/2010/07/28/1786706.html
这个说的很笼统 --------------------编程问答--------------------
引用 2 楼 hjywyj 的回复:
http://www.cnblogs.com/NothingIsImpossible/archive/2010/07/28/1786706.html

这tmd是谁说的?
静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。
--------------------编程问答-------------------- 能定义成静态的就不定义成实例方法。当然不是说把成员变量当参数传递,而是当方法的确不需要引用成员变量时 --------------------编程问答-------------------- 静态方法 的调用是不需要实例化对象的 实例方法的调用是需要实例化对象的 --------------------编程问答-------------------- 很简单,如果一个方法需要“实例”参与才能完成,那么需要定义成成员方法,否则就是静态方法。

举例:
Math.Sin() 方法,你觉得求sin需要Math类的什么状态?不需要吧。
string.Trim() 方法则不同,你需要知道具体的string才能对它截取。

给一个极端的例子,比如“单例模式”,通过封闭构造函数和使用GetInstance获取对象,显然这个方法必须是静态的。

当然,任何成员方法,都可以改造成静态方法,只要把成员变成一个参数,比如
string->Trim()完全可以用string::Trim(string this)表示。

这样,面向对象可以完全退回面向过程的方法——事实上,编译器可以把任何面向对象的代码转换成面向过程的形式(机器就是面向过程的)。

那么你的问题退回了“什么时候我们要面向对象”,答案很简单——当你从码农进化成程序员的时候,前者的目标是完成功能,后者在此之上追求优雅、高质量、容易理解和维护的设计。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,