2011-02-02 29 views
1

是否C#允許下列事情:C# - 類訪問的變質劑

比方說,我有namespace Xnamespace X.Y

如何讓我的名字空間X.Y內部該命名空間class MyClass,使MyClass無法從namespace X訪問?

+1

兩個單獨的項目,內部是該項目的內部。 – PostMan 2011-02-02 20:37:13

回答

9

internal關鍵字爲組件外部的世界構建一個類「私有」,但在同一個程序集內對所有類型都是公共的。

通過將namespace Xnamespace X.Y在兩個單獨的組件,可以有在後者命名空間是internal到該組件,因此不能訪問在其他命名空間類型的類。

注:只是強調一個事實:有沒有辦法可以讓內部類型的命名空間,你只能讓他們內部的裝配。一個程序集可能在兩個名稱空間中都包含內部類型,並且無論名稱空間如何,這些程序集都可以訪問該程序集中的所有類型。另一個包含兩個名稱空間中的類型的程序集將只能訪問其他程序集中的公共類型,而不管名稱空間如何。

0

取決於你的類,你也可以使用嵌套類型。只有在X.Y中的類只被X中的一個類使用時纔有可能。