您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#的靜態方法怎么使用”,在日常操作中,相信很多人在C#的靜態方法怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#的靜態方法怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
使用了static 修飾符的方法為靜態方法,反之則是非靜態方法。 靜態方法是一種特殊的成員方法,它不屬于類的某一個具體的實例,而是屬于類本身。所以對靜態方法不需要首先創建一個類的實例,而是采用類名.靜態方法的格式 。除此之外,靜態方法和非靜態方法有如下區別:
1.靜態方法不需要類實例化就可以調用,反之非靜態方法需要實例化后才能調用;
2.靜態方法只能訪問靜態成員和方法,非靜態方法都可以訪問;
3.靜態方法不能標記為override,導致派生類不能重寫,但是可以訪問;
4.靜態成員是在第一次使用時進行初始化。非靜態的成員是在創建對象的時候,從內存分配上來說靜態是連續的,非靜態在內存的存儲上是離散的,因此靜態方法和非靜態方法,在調用速度上,靜態方法速度一定會快點,因為非靜態方法需要實例化,分配內存,但靜態方法不用,但是這種速度上差異可以忽略不計
5.static方法是類中的一個成員方法,屬于整個類,即不用創建任何對象也可以直接調用,static內部只能出現static變量和其他static方法。而且static方法中還不能使用this....等關鍵字,因為它是屬于整個類!
靜態方法:原理就是共享代碼段 共享代碼段不會產生任何問題 因為代碼段都是給CPU作為"讀取"用的,除非你進行惡意"修改"運行時的代碼段 所以靜態方法是可以放心使用的 。
靜態變量:原理就是共享數據段 同上 只要沒有進行"寫入"操作就不會產生問題 但是數據通常都是用于讀和寫所以靜態變量要注意使用。
public class A { public static void Method1() { Console.WriteLine("我是Method1,是靜態方法"); //靜態方法中互獲取類名 string className = System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName; Console.WriteLine("Method1方法所在類:{0}", className);//命名空間.類名 } public void Method2() { Console.WriteLine("我是Method2,不是靜態方法"); //非靜態方法獲取類名 string className = this.GetType().FullName; Console.WriteLine("Method2方法所在類:{0}", className);//命名空間.類名;和上面方法同在一個類,所以輸出結果相同 } } class Program { public static void Method3() { Console.WriteLine("我是Method3,不是是靜態方法"); } static void Main(string[] args) { A.Method1(); // A.Method2(); //報錯,非靜態方法必須通過實例化才能引用 A a = new A(); a.Method2(); Method3(); } }
到此,關于“C#的靜態方法怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。