溫馨提示×

溫馨提示×

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

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

C#中有哪些訪問修飾符

發(fā)布時間:2021-07-08 15:29:12 來源:億速云 閱讀:145 作者:Leah 欄目:編程語言

本篇文章為大家展示了C#中有哪些訪問修飾符,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

C#訪問修飾符

C#訪問修飾符與 Java 大致相同,我們將在這一部分介紹其中的一些細微差別。每個類成員或類本身都可以用C#訪問修飾符進行聲明,以定義許可訪問的范圍。沒有在其他類中聲明的類只能指定 public 或 internal 修飾符,而嵌套的類(如其他的類成員)可以指定下面五個修飾符中的任何一個:
◆public:對所有類可見
◆protected:僅從派生類中可見
◆private:僅在給定的類中可見
◆internal:僅在相同的程序集中可見
◆protected internal:僅對當(dāng)前的程序集或從包含類中派生的類型可見

1.public、protected 和 private 修飾符
public 修飾符使得可以從類內(nèi)外的任何地方訪問成員。protected 修飾符表示訪問僅限于包含類或從它派生的類。private 修飾符意味著只可能從包含類型中進行訪問。

2.internal 修飾符
internal 項只可以在當(dāng)前的程序集中進行訪問。.NET 中的程序集大致等同于 Java 的 JAR 文件,它表示可以從中構(gòu)造其他程序的生成塊。

3.protected internal 修飾符
protected internal 項僅對當(dāng)前程序集或從包含類派生的類型可見。默認C#訪問修飾符是 private,而 Java 的默認C#訪問修飾符是包范圍。

4.sealed 修飾符
在其類聲明中帶有 sealed 修飾符的類可以認為是與抽象類完全相反的類:它不能被繼承。我們可以將一個類標(biāo)記為 sealed,以防止其他類重寫它的功能。自然地,sealed 類不能是抽象的。同時還需要注意,該結(jié)構(gòu)是隱式密封的;因此,它們不能被繼承。sealed 修飾符相當(dāng)于在 Java 中用 final 關(guān)鍵字標(biāo)記類。

5.readonly 修飾符
要在 C# 中定義常量,我們可以使用 const 或 readonly 修飾符替換 Java 的 final 關(guān)鍵字。在 C# 中,這兩個修飾符之間的區(qū)別在于,const 項是在編譯時處理的,而 readonly 字段是在運行時設(shè)置的。這可以允許我們修改用于在運行時確定 readonly 字段值的表達式。

這意味著給 readonly 字段的賦值可以出現(xiàn)在類構(gòu)造函數(shù)及聲明中。例如,下面的類聲明了一個名為 IntegerVariable 的 readonly 變量,它是在類構(gòu)造函數(shù)中初始化的:

using System;  public class ReadOnlyClass  {  private readonly int IntegerConstant;   public ReadOnlyClass ()  {  IntegerConstant = 5;  }  // We get a compile time error if we try to set the value of the readonly  //class variable outside of the constructor  public int IntMember  {  set  {  IntegerConstant = value;  }  get  {  return IntegerConstant;  }  }   public static void Main(string[] args)  {  ReadOnlyClass obj= new ReadOnlyClass();   // We cannot perform this operation on a readonly field  obj.IntMember = 100;  Console.WriteLine("Value of IntegerConstant field is {0}",   obj.IntMember);  }  }

上述內(nèi)容就是C#中有哪些訪問修飾符,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI