internal關鍵字是型別和型別成員的訪問修飾符。只有在同乙個程式集的檔案中,內部型別或者是成員才可以訪問。這是msdn上對internal的描述。只有這麼一句話,但是具體怎麼理解呢?型別就是enum(列舉型別),class(類),inte***ce(介面),struct(結構)等型別。型別成員如函式,成員變數等。那麼什麼是程式集呢?根據msdn上通俗易懂的解釋就是,乙個完整的.exe或者是.dll檔案就是乙個程式集,一般伴隨著exe程式集產生的還有乙個程式集清單,.exe.config檔案。下面我就用乙個例子來說明「internal關鍵字是型別和型別成員的訪問修飾符。只有在同乙個程式集的檔案中,內部型別或者是成員才可以訪問」。
首先建立乙個visual c#的class libiary專案,在該專案中建立class1,class2,class3,class 4,class5如下
public class class1
public class class2 : class1
public string getprotectedinternal()
public string getprotected()
}internal class class3
class class4 : class3
public string getprotected()
public string getpublic()
}public class class5
public string getprotectedinternal()
public string getpublic()
public string getinternal1()
}現在已經有用internal修飾的型別和型別成員了。
1.從class1,class2和class5中我們可以看到在同乙個程式集中(因為class1,class2和class5都是在同乙個dll檔案中的),internal修飾的型別成員就和public修飾的一樣可以被子類呼叫也可以被被其他的型別呼叫,而protected internal則和protected等價,不能被非子類呼叫。
圖1 在繼承類中internal修飾型別成員
圖2 在其他類中的internal修飾型別成員
2.從class3,class4和class5中,我們可以看到internal修飾的型別就和public修飾的一樣,protected internal則和protected等價。
圖3 internal修飾的繼承類
圖4在其他類中呼叫internal修飾的類
在不同程式集中呼叫internal修飾的型別和型別成員。新建乙個winform專案,在該專案中新增對上面建立的dll檔案---testinternallib.dll。
1.internal修飾的型別
圖5 internal修飾的class不可見,只有class1和class2
2.intrnal修飾的型別成員的引用
圖7 internal修飾的型別成員都不可見
ok,到此為止,解釋清楚了internal的描述。問題雖小,但是積少成多,以後就是寶貴的財富。
C 中internal關鍵字
對於一些大型的專案,通常由很多個dll檔案組成,引用了這些dll,就能訪問dll裡面的類和類裡面的方法。假如你寫了乙個記錄日誌的dll,任何專案只要引用此dll就能實現記錄日誌的功能,這個dll檔案的程式就是乙個程式集。如果你記錄日誌的程式集是這麼定義的namespace logerhelper p...
C 中internal關鍵字的作用
對於一些大型的專案,通常由很多個dll檔案組成,引用了這些dll,就能訪問dll裡面的類和類裡面的方法。比如,你寫了乙個記錄日誌的dll,任何專案只要引用此dll就能實現記錄日誌的功能,這個dll檔案的程式就是乙個 程式集。如果你記錄日誌的 程式集是這麼定義的 namespace logerhelp...
C 中Internal關鍵字的總結
注意 想要徹底把internal關鍵字搞清楚,就耐著性子讀完。當然了這篇文章只是對其他文章的總結。也算是引用吧。主要還是為了把知識點搞清楚 一 進入主題之前先來了解一下,專案 解決方案 程式集 命名空間四個容易混淆的概念。專案 就是我們開發的乙個軟體。net下,專案有多種型別,如控制台 window...