C# 静态方法和实例化方法


C#中静态方法和普通方法的区别、使用

1、定义方法的格式

1 访问修饰符 返回类型 方法名 (参数列表) 2 { 3     // 方法的主体…
4 }

2、静态方法

在大多数时候,我们定义写一个方法,会把方法区分为实例化方法(普通方法)和静态方法。

用static修饰一个方法,就是静态方法。

1 public string InstanceMethod()//定义一个实例化方法(普通方法)
2 { 3     return "实例化方法(普通方法)"; 4 } 5 public static string StacticMethod()//定义一个静态方法
6 { 7     return "静态方法"; 8 }

3、静态方法和实例化方法的区别

(1)静态方法和实例方法,在加载时机上是一样的,在类型第一次被使用的时候加载,调用的速度基本上没有差别

(2)静态方法和实例化方法在本质上都是方法,所以在内存中,无论是静态方法还是实例化方法,在内存中都只保存一份

(3)如果一个方法,与他所在的类的事例对象无关,那么它就应该是静态的,而不应该把它写成实例方法。

    从面向对象的角度来说,在抉择使用静态方法还是实例化方法,应该依据这个方法和实例化对象是否有逻辑关系

  (4) 静态方法只与类有关,它不依赖于对象的存在而存在;实例方法则在对象存在后才能使用。

普通方法、静态方法的使用

实例化方法:需要实例化对象,用对象点出来。

静态方法:直接用类名点出来,不需要实例化对象。

(1)如果两个方法都是实例化方法(普通方法),那么可以直接用方法名调用

1 public void Eat() 2 { 3     Console.WriteLine("吃饭!"); 4     Sleep();//直接调用Sleep方法
5 } 6 public void Sleep() 7 { 8     Console.WriteLine("睡觉!"); 9 }

(2)如果两个方法都是静态方法, 那么可以直接用方法名调用

1 public static void Hello() 2 { 3     Console.WriteLine("Hello!"); 4 } 5 public static void Music() 6 { 7     Hello();//直接调用Hello方法
8 }

(3)在静态方法中调用非静态方法,那么要先创建对象,再通过对象名.方法名()

 1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5 using System.Threading.Tasks;  6 
 7 namespace ConsoleApp4  8 {  9     class Program 10  { 11         static void Main(string[] args) 12  { 13             Program a = new Program();//先创建一个对象
14             a.Hello();//通过 对象名.方法名(),来调用方法
15  Console.ReadLine(); 16  } 17         public void Hello() 18  { 19             Console.WriteLine("Say Hello!"); 20  } 21  } 22 }    

(4)在非静态方法中,可以使用静态方法

1 public void Name() 2 { 3     Hello();//在非静态方法中,直接调用静态方法
4 } 5 public static void Hello() 6 { 7     Console.WriteLine("Say Hello!"); 8 }

End


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM