C 訪問修飾符internal的訪問範圍誤區釋疑

2021-09-10 21:31:58 字數 1364 閱讀 8202

msdn關於訪問修飾符的訪問級別解釋:

訪問修飾符是一些關鍵字,用於指定宣告的成員或型別的可訪問性。本節介紹四個訪問修飾符:

使用這些訪問修飾符可指定下列五個可訪問性級別:

public:訪問不受限制。

protected:訪問僅限於包含類或從包含類派生的型別。

internal:訪問僅限於當前程式集。

protected internal:訪問限制到當前程式集或從包含派生的型別的類別。

private:訪問僅限於包含型別。

internal,英文含義是「內部的」,這時候基礎不紮實的同學,可能就混淆了這個「內部的」的確切含義,到底是指「同一命名空間」的內部,還是「同一程式集」的內部,本人就是突然被問到這個問題的時候,真的就猶豫了,而且曾經一度以為就是「同一命名空間」的內部(話外:我們太多時候都自以為了,其實只要自己稍微msdn查一下,就很清楚了)。

第一部分已經摘抄了微軟msdn官方的解釋,其實這個內部就是「同一程式集」的內部,也就是說,internal修飾的方法或者屬性,只要是在同乙個程式集的中的其他類都可以訪問,如果二者不在同一命名空間,只要使用using引用上相應的命名空間即可,這裡,從另外乙個方面也間接看出命名空間並不是界定訪問級別的,而是保證全域性的類唯一性的,下面就從現實生活中解釋下internal的實際作用。

都說藝術源於生活,程式設計也是一門藝術,所以一樣也是可以成生活中找到相應的場景,下面我們以實際生活場景來描述internal修飾符的作用。

某公司的某技術中心,發文規定即日起,中心內的「印表機」僅限本中心的各個部門使用,其他中心的人員不能使用。這個現實生活的場景中,技術中心其實就是個程式集,而每個部門相當於不同的類,當然部門可以有相應的標籤,相當於不同的命名空間,其實就是進行邏輯劃分,職責不同的部門屬於不同的命名空間就可以理解了。而我們的「主角」印表機的旁邊就會被貼上公告「本中心的印表機只能本中心使用。。。。」,此時就相當於給印表機打上了internal修飾符了。其他中心的同學們,再也用不上本中心的印表機了。

下面我們用**來描述上面的場景:

namespace commonasset

set

}public void print()

}}

namespace centera.administration

public departmentb()

}}namespace centera.technology

public departmenta()

public void printsomething()

else}}

}

C 訪問修飾符internal的訪問範圍誤區釋疑

msdn關於訪問修飾符的訪問級別解釋 訪問修飾符是一些關鍵字,用於指定宣告的成員或型別的可訪問性。使用這些訪問修飾符可指定下列五個可訪問性級別 public 訪問不受限制。protected 訪問僅限於包含類或從包含類派生的型別。internal 訪問僅限於當前程式集。protected inter...

C 訪問修飾符internal的訪問範圍誤區釋疑

msdn關於訪問修飾符的訪問級別解釋 訪問修飾符是一些關鍵字,用於指定宣告的成員或型別的可訪問性。本節介紹四個訪問修飾符 使用這些訪問修飾符可指定下列五個可訪問性級別 public 訪問不受限制。protected 訪問僅限於包含類或從包含類派生的型別。internal 訪問僅限於當前程式集。pro...

C 訪問修飾符

所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修飾符之一來指定其可訪問性 public 訪問不受限制。可以類內和任何類外的 中訪問。private 可以被所屬類訪問。只有同一類或結構中的 可以訪問該型別或成員。pro...