c# 访问修饰符的访问权限
指定聲明的類型和類型成員的可訪問性。
(1) public:是類型和類型成員的訪問修飾符。公共訪問是允許的最高訪問級別。對訪問公共成員沒有限制。
(2) private:是一個成員訪問修飾符。私有訪問是允許的最低訪問級別。私有成員只有在聲明它們的類和結 構體中才是可訪問的。
(3) internal:是類型和類型成員的訪問修飾符。只有在同一程序集的文件中,內部類型或成員才是可訪問的。
(4)protected:是一個成員訪問修飾符。受保護成員在它的類中可訪問并且可由派生類訪問。
2、abstract:指示某個類只能是其他類的基類。
可以和類、方法、屬性、索引器及事件一起使用。在類聲明中使用 abstract修飾符以指示某個類只能是其他類的基類。標記為抽象或包含在抽象類中的成員必須通過從抽象類派生的類來實現。
3、const:指定無法修改字段或局部變量的值。
用于修改字段或局部變量的聲明。它指定字段或局部變量的值是常數,不能被修改。
4、event:聲明事件。
類和結構使用事件將出現的可能影響對象狀態的事件通知給對象。
5、extern:指示在外部實現方法。
用于聲明在外部實現的方法。extern修飾符的常見用法是在使用 Interop 服務 調入非托管代碼時與 DllImport屬性一起使用;在這種情況下,該方法還必須聲明為 static。
extern關鍵字還可以定義外部程序集別名,使得可以從單個程序集中引用同一組件的不同版本。
將 abstract和 extern修飾符一起使用來修改同一成員是錯誤的。使用 extern修飾符意味著方法在 C# 代碼的外部實現,而使用 abstract修飾符意味著在類中未提供方法實現。
6、new:從基類成員隱藏繼承的成員。
在用作修飾符時,new關鍵字可以顯式隱藏從基類繼承的成員。隱藏繼承的成員意味著該成員的派生版本將替換基類版本。在不使用 new修飾符的情況下隱藏成員是允許的,但會生成警告。使用 new顯式隱藏成員會取消此警告,并記錄代之以派生版本這一事實。
若要隱藏繼承的成員,請使用相同名稱在派生類中聲明該成員,并使用 new修飾符修飾該成員。
對同一成員同時使用 new和override是錯誤的,因為這兩個修飾符在含義上相互排斥。使用 new會用同樣的名稱創建一個新成員并使原始成員變為隱藏的,而 override則擴展繼承成員的實現。
在不隱藏繼承成員的聲明中使用 new修飾符將會生成警告。
7、override:提供從基類繼承的虛擬成員的新實現。
要擴展或修改繼承的方法、屬性、索引器或事件的抽象實現或虛實現,必須使用 override修飾符。
8、partial:在整個同一程序集中定義分部類和結構。
分部類型定義允許將類、結構或接口的定義拆分到多個文件中。
9、readonly:聲明一個字段,該字段只能賦值為該聲明的一部分或者在同一個類的構造函數中。
是可以在字段上使用的修飾符。當字段聲明包括 readonly修飾符時,該聲明引入的字段賦值只能作為聲明的一部分出現,或者出現在同一類的構造函數中。在此示例中,字段year的值無法在ChangeYear方法中更改,即使在類構造函數中給它賦了值。
10、sealed:指定類不能被繼承。
可以應用于類、實例方法和屬性。密封類不能被繼承。密封方法會重寫基類中的方法,但其本身不能在任何派生類中進一步重寫。當應用于方法或屬性時,sealed修飾符必須始終與override一起使用。
在類聲明中使用 sealed修飾符可防止繼承此類
11、static:聲明屬于類型本身而不是屬于特定對象的成員。
聲明屬于類型本身而不是屬于特定對象的靜態成員。可用于類、字段、方法、屬性、運算符、事件和構造函數,但不能用于索引器、析構函數或類以外的類型。
12、unsafe:聲明不安全的上下文。該上下文是任何涉及指針的操作所必需的。
13、virtual:在派生類中聲明其實現可由重寫成員更改的方法或訪問器。
用于修飾方法、屬性、索引器或事件聲明,并且允許在派生類中重寫這些對象。
調用虛方法時,將為重寫成員檢查該對象的運行時類型。將調用大部分派生類中的該重寫成員,如果沒有派生類重寫該成員,則它可能是原始成員。
默認情況下,方法是非虛擬的。不能重寫非虛方法。
virtual修飾符不能與 static、abstract和 override修飾符一起使用。
除了聲明和調用語法不同外,虛擬屬性的行為與抽象方法一樣。
· 在靜態屬性上使用 virtual修飾符是錯誤的。
· 通過包括使用 override修飾符的屬性聲明,可在派生類中重寫虛擬繼承屬性。
14、volatile:指示字段可由操作系統、硬件或并發執行線程等在程序中進行修改。
volatile關鍵字表示字段可能被多個并發執行線程修改。聲明為 volatile的字段不受編譯器優化(假定由單個線程訪問)的限制。這樣可以確保該字段在任何時間呈現的都是最新的值。
volatile修飾符通常用于由多個線程訪問而不使用 lock 語句(C# 參考)語句對訪問進行序列化的字段。
volatile關鍵字可應用于以下類型:
· 引用類型。
· 指針類型(在不安全的上下文中)。
· 整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。
· 具有整數基類型的枚舉類型。
· 已知為引用類型的泛型類型參數。
· IntPtr 和 UIntPtr。
所涉及的類型必須是類或結構的字段。不能將局部變量聲明為 volatile。
轉載于:https://www.cnblogs.com/yeye518/archive/2008/05/05/2231758.html
總結
以上是生活随笔為你收集整理的c# 访问修饰符的访问权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 狗窝里的小日子- 5 ...
- 下一篇: 10 张图带你深入理解Docker容器和