您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關C#中構造函數和析構函數的作用是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
C#構造函數(constructor)包括實例C#構造函數和靜態C#構造函數。C#構造函數與類名相同,且不能有返回值。例:
class TestClass { TestClass() //實例構造函數:可以訪問靜態成員和實例成員,用于初始化實例成員 { ... } static TestClass() //靜態構造函數:只能訪問靜態成員,用于初始化靜態成員 { ... } }
類的靜態成員屬于類所有,不必生成實例就可以訪問,它是在載入包含類的應用程序時創建的,但靜態方法不能訪問類的實例變量和方法。通常,靜態變量是在定義時就賦初始值的。
類的實例成員屬于類的實例所有,不創建實例對象就無法對其進行訪問,實例成員可以訪問類的靜態成員和其它實例成員。
class A { public A() { ... } } class B { public B(): base() //調用基類的析構函數 { ... } }
常量:其值是在編譯時設定的,必須是數值文字。默認狀態下常量是靜態的。例:
class A { public const double pi = 3.1415; }
常量是編譯時就確定的值,只讀字段是在運行才能確定的值。比如運行時才能確定的屏幕分辨率。只讀字段只能在類的C#析構函數中賦值。靜態只讀字段:
class A { public static readonly int ScreenWidth; //靜態只讀字段 static A() //靜態析構函數 { ScreenWidth = 1024; //在靜態析構函數中初始化 } }
在類的繼承中,類的C#析構函數是不會被繼承的。一個派生類只能從一個基類繼承,不能同時從多個基類繼承,但可以通過繼承多個接口來達到相同目的。實現多繼承的***方法就是使用接口。例:
class MyFancyGrid: Control, ISerializable, IDataBound { ... }
以上就是C#中構造函數和析構函數的作用是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。