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...