internal 修飾符起什么作用?
系列文章導航:
C#基礎概念之P/Invoke,StringBuilder 和 String
5.internal 修飾符起什么作用?
答:
internal 修飾符可以用于類型或成員,使用該修飾符聲明的類型或成員只能在同一程集內訪問接口的成員不能使用 internal 修飾符值得注意的是,如果為 internal 成員加上了 protected 修飾符,這時的訪問級別為 internal 或 protected。只是看字面意思容易弄錯,許多人認為 internal protected 應該是“只有同一個程序集中的子類可以訪問”,但其實它表示“同一個程序集中的所有類,以及所有程序集中的子類都可以訪問”
示例
Example05Lib 項目的 Class1
Code using System; using System.Collections.Generic; using System.Text; namespace Example05Lib { public class Class1 { internal String strInternal = null; public String strPublic; internal protected String strInternalProtected = null; } }
結果
Example05Lib 項目的 Class2 類可以訪問到 Class1 的 strInternal 成員,當然也可以訪問到 strInternalProtected 成員,因為他們在同一個程序集里
Example05 項目里的 Class3 類無法訪問到 Class1 的 strInternal 成員,因為它們不在同一個程序集里。但卻可以訪問到 strInternalProtected 成員,因為 Class3 是 Class1 的繼承類
Example05 項目的 Program 類既無法訪問到 Class1 的 strInternal 成員,也無法訪問到 strInternalProtected 成員,因為它們既不在同一個程序集里也不存在繼承關系
全站熱搜