首頁 後端開發 C#.Net教程 C#中五種存取修飾符作用範圍實例詳解

C#中五種存取修飾符作用範圍實例詳解

Jun 29, 2017 pm 02:36 PM
.net private protected

在C#語言中,共有五種存取修飾符:public、private、protected、internal、protected internal。作用範圍如下表:
存取修飾符 說明
public 公有存取。不受任何限制。
private 私有存取。只限於本類成員訪問,子類,實例都不能訪問。
protected 保護存取。只限於本類和子類訪問,實例不能訪問。
internal 內部存取。只限於本項目內訪問,其他不能訪問。
protected internal 內部保護存取。只限於本項目或是子類別訪問,其他不能訪問
C#成員類型的可修飾及預設修飾符如下表:
成員類型 預設修飾符 可被修飾符
enum public none
class private public、protected、internal、private、
protected internal
interface public none
struct private public、internal、private
下面我就結合實例,並講一下public、private、protected、internal和protected internal的作用範圍。
如下程式碼:

[csharp] view plain copy
 
using System;  
using System.Collections.Generic;  
using System.Text;  
  
namespace AccessModifier  
{  
    public class AccessModifierClass  
    {  
        public string GetPublicString()  
         {  
            return "Public String";  
         }  
  
        protected string GetProtectedString()  
         {  
            return "Protected String";  
         }  
  
         private string GetPrivateString()  
         {  
            return "Private String";  
         }  
  
         internal string GetInternalString()  
         {  
            return "Internal String";  
         }  
  
        protected internal string GetProtectedInternalString()  
         {  
            return "Protected Internal String";  
         }  
  
        void AvailableAccessModifier()  
        {  
         this.GetPublicString();  
         this.GetPrivateString();  
         this.GetInternalString();  
         this.GetProtectedInternalString();  
         this.GetProtectedString();  
        }  
     }  
  
  
    public class TestAccessModifierClass1  
     {  
         void AvailableAccessModifier()  
         {  
             AccessModifierClass item = new AccessModifierClass();  
             item.GetPublicString();  
             item.GetInternalString();  
             item.GetProtectedInternalString();  
         }  
     }  
  
     public class TestAccessModifierClass2 : AccessModifierClass  
     {  
         void AvailableAccessModifier()  
         {  
             AccessModifierClass item = new AccessModifierClass();  
             item.GetPublicString();  
             item.GetInternalString();  
             item.GetProtectedInternalString();  
             base.GetProtectedString();  
         }  
     }  
 }
登入後複製


 AccessModifierClass 是我們的存取修飾符類,裡面有五種存取修飾符方法,可見在AccessModifierClass 類別裡面的AvailableAccessModifier() 方法可以存取所有的方法。
在 TestAccessModifierClass1 類別中的 AvailableAccessModifier() 方法只能存取 public、Internal 和 Protected Internal 方法。

TestAccessModifierClass2 類別繼承自 AccessModifierClass 類,所以它的 AvailableAccessModifier() 方法可以存取 public,internal,protected和protected internal 方法。

以上是C#中五種存取修飾符作用範圍實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

分享幾個.NET開源的AI和LLM相關專案框架 分享幾個.NET開源的AI和LLM相關專案框架 May 06, 2024 pm 04:43 PM

當今人工智慧(AI)技術的發展如火如荼,它們在各個領域都展現了巨大的潛力和影響力。今天大姚給大家分享4個.NET開源的AI模型LLM相關的專案框架,希望能為大家提供一些參考。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一種開源的軟體開發工具包(SDK),旨在將大型語言模型(LLM)如OpenAI、Azure

C#的就業前景如何 C#的就業前景如何 Oct 19, 2023 am 11:02 AM

無論您是初學者還是有經驗的專業人士,掌握C#將為您的職業發展鋪平道路。

java中private是什麼意思 java中private是什麼意思 Nov 24, 2022 pm 06:27 PM

在java中,private的意思為“私有的”,是一種存取控制修飾符,用於修飾類別、屬性和方法。用private修飾的類別成員,只能被該類別本身的方法存取和修改,而不能被任何其他類別(包括該類別的子類別)存取和引用;因此​​,private修飾符具有最高的保護等級。

面向開發人員的.NET效能最佳化技術 面向開發人員的.NET效能最佳化技術 Sep 12, 2023 am 10:43 AM

如果你是.NET開發者,你必須意識到在交付高品質軟體方面,優化功能和效能的重要性。透過熟練使用提供的資源並減少網站載入時間,你不僅為使用者創造了愉快的體驗,還能減少基礎設施成本。

Java框架與.NET框架的效能差異 Java框架與.NET框架的效能差異 Jun 03, 2024 am 09:19 AM

在高並發請求處理方面,.NETASP.NETCoreWebAPI效能優於JavaSpringMVC,原因包括:AOT提前編譯,減少啟動時間;更精細的記憶體管理,由開發人員負責分配和釋放物件記憶體。

Java 函數的存取權限修飾符之 private 詳解 Java 函數的存取權限修飾符之 private 詳解 Apr 25, 2024 pm 04:48 PM

private是一種Java訪問權限修飾符,它限制函數的可訪問性,只允許在定義它的類別中訪問,包括:在其他類別中無法存取該函數。在子類別中也無法存取該函數。

在Java中,我們可以將頂級類別聲明為protected或private嗎? 在Java中,我們可以將頂級類別聲明為protected或private嗎? Sep 12, 2023 pm 07:21 PM

不,我們不能將頂級類別聲明為私有或受保護。它可以是公共或預設(無修飾符)。如果沒有修飾符,則應該具有預設存取權限。語法//Atoplevelclass  publicclassTopLevelClassTest{   //Classbody}如果將一個頂級類別宣告為私有(private),編譯器將會報錯,提示「在此處不允許使用修飾符private」。這意味著頂級類別不能是私有的,同樣也適用於protected訪問

C#.NET面試問題和答案:提高您的專業知識 C#.NET面試問題和答案:提高您的專業知識 Apr 07, 2025 am 12:01 AM

C#.NET面試問題和答案包括基礎知識、核心概念和高級用法。 1)基礎知識:C#是微軟開發的面向對象語言,主要用於.NET框架。 2)核心概念:委託和事件允許動態綁定方法,LINQ提供強大查詢功能。 3)高級用法:異步編程提高響應性,表達式樹用於動態代碼構建。

See all articles