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