亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

寫給初學者之 訪問控制符static

發布時間:2020-08-09 17:02:20 來源:網絡 閱讀:622 作者:咸咸的簡單 欄目:編程語言

C#的修飾符:static

聲明屬于類型本生而不屬于實體對象的成員。

一、非靜態類

1、非靜態類可以包含靜態的方法、字段、屬性或事件。 靜態的類成員屬于類級別的,不屬于類的任何實例,類外不可以通過類的實體對象來調用靜態變量,要用類名來調用,(如現在有一個Student 類,這個類里有一個static  string  name,當其他類需要調它的時候就要用Student.name);無論對一個類創建多少個實例,它的靜態成員都只有一個副本,類里的所有成員都可以訪問它,可以改變它的值。 靜態方法和屬性不能訪問其包含類型中的非靜態字段和事件,并且不能訪問任何對象的實例變量(除非在方法參數中顯式傳遞)。

靜態字段有兩個常見的用法:一是記錄已實例化對象的個數;二是存儲必須在所有實例之間共享的值。

靜態方法可以被重載但不能被重寫,因為它們屬于類,不屬于類的任何實例

2、靜態成員在第一次被訪問之前并且在調用靜態構造函數(如有存在)之前進行初始化。  靜態構造函數用于初始化任何 靜態 數據,或用于執行僅需執行一次的特定操作。 在創建第一個實例或引用任何靜態成員之前,將自動調用靜態構造函數。

public class Students

{

//定義靜態變量

public staic int Num;

//靜態構造函數

static Students()

{

Num = 30;

}

}

3、靜態構造函數具有以下特點: 

靜態構造函數既沒有訪問修飾符,也沒有參數。用于對靜態字段、只讀字段等的初始化。 

在創建第一個實例或引用任何靜態成員之前,將自動調用靜態構造函數來初始化類的靜態構造函數在給定應用程序域中至多執行一次

靜態構造函數是不可繼承的,而且不能被直接調用。

在程序中,用戶無法控制何時執行靜態構造函數。

如果沒有編寫靜態構造函數,而這時類中包含帶有初始值設定的靜態字段,那么編譯器會自動生成默認的靜態構造函數。

4、靜態變量的幾點說明

1靜態方法和靜態數據成員相當于共享變量,只有“一份”,為該類的所有對象所共有,因而在需要共享數據時,定義這種類型時很好的選擇。 一但定義一個類后(不一定要實例化對象)該類的所有靜態成員就載入內存(并不是程序啟動,就裝入內存,沒有定義該類時它不會載入內存) 靜態成員的作用域與它所屬的類的作用域相同

(2)方法內部的靜態變量,執行完靜態變量值不消失,再次執行此對象的方法時,值仍存在,它不是在棧中分配的,是在靜態區分析的,共有兩種變量存儲在靜態存儲區:全局變量和static變量這是與局部變量最大的區別。

3由于靜態成員函數存在于類一級,并且不是對象的一部分,因此沒有 this 指針。在靜態方法中引用 this 是錯誤的

二、靜態類:

聲明為static,它僅包含靜態成員,不能用new靜態類的實例。使用靜態類來包含不與特定對象關聯的方法。

功能:僅包含靜態成員,不能被實例化,是密封的,不能包含實例構造函數,可包含靜態構造函數以分配初始值或設置某個靜態變量。

優點:編譯器能夠執行檢查以確保不致偶然地添加勢力成員。編譯器將保證不會創建此類的實例。 

 

 

 

 

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿鲁科尔沁旗| 佳木斯市| 湘乡市| 炎陵县| 三河市| 广饶县| 日照市| 太仓市| 苏尼特左旗| 手机| 定西市| 南木林县| 榆林市| 成武县| 新民市| 德昌县| 柳林县| 金乡县| 思南县| 蒙城县| 双柏县| 任丘市| 无为县| 安化县| 沙坪坝区| 合作市| 元朗区| 齐河县| 蒲城县| 遵义县| 沅江市| 双牌县| 陈巴尔虎旗| 惠安县| 绥芬河市| 诸暨市| 平泉县| 贺兰县| 桐柏县| 北辰区| 陆河县|