命名空間和類型都擁有成員。在實(shí)體開始被引用時(shí),實(shí)體成員一般都可通過限定名稱(qualified name)引入其中,通過標(biāo)記(token).
引出成員的名字。
類型的成員既可在類型聲明中聲明,也可從其基類中繼承。當(dāng)一個(gè)類型繼承自其基類時(shí),所有基類成員(除了實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)以及靜態(tài)構(gòu)造函數(shù))都將成為派生類型的成員?;惓蓡T的聲明可訪問性并不控制成員是否可被繼承——繼承可拓展到除實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)和靜態(tài)構(gòu)造函數(shù)之外的任意成員。然而。也有可能派生類型無法訪問到所繼承的成員,比方說因?yàn)槠渎暶骺稍L問性(第三章第 5.1 節(jié))或是因?yàn)槠渫ㄟ^類型自身聲明隱藏(第三章第 7.1.2 節(jié))。
如果命名空間與類型沒有閉包于一個(gè)命名空間,則它們將是全局命名空間(global namespace)的成員。這相當(dāng)于名字直接在全局聲明空間內(nèi)聲明了。
如果命名空間與類型在一個(gè)命名空間內(nèi),那么命名空間和類型將是這個(gè)外部命名空間的成員。這意味著名字直接在這個(gè)命名空間的聲明空間內(nèi)聲明了。
命名空間沒有訪問限制(access restrictions)。不可以為命名空間聲明為 private、 protected 或 internal,命名空間永遠(yuǎn)是可公開取得的(publicly accessible)。
結(jié)構(gòu)成員是結(jié)構(gòu)內(nèi)聲明的成員,以及直接繼承自結(jié)構(gòu)基類 System.ValueType
以及間接繼承自基類 object
的成員。
簡(jiǎn)單類型的成員通過類型別名(alias)直接對(duì)應(yīng)結(jié)構(gòu)類型的成員:
sbyte 的成員是 System.SByte 結(jié)構(gòu)的成員;
byte 的成員是 System.Byte 結(jié)構(gòu)的成員;
short 的成員是 System.Int16 結(jié)構(gòu)的成員;
ushort 的成員是 System.UInt16 結(jié)構(gòu)的成員;
int 的成員是 System.Int32 結(jié)構(gòu)的成員;
uint 的成員是 System.UInt32 結(jié)構(gòu)的成員;
long 的成員是 System.Int64 結(jié)構(gòu)的成員;
ulong 的成員是 System.UInt64 結(jié)構(gòu)的成員;
char 的成員是 System.Char 結(jié)構(gòu)的成員;
float 的成員是 System.Single 結(jié)構(gòu)的成員;
double 的成員是 System.Double 結(jié)構(gòu)的成員;
decimal 的成員是 System.Decimal 結(jié)構(gòu)的成員;
枚舉內(nèi)的成員是枚舉聲明的常量以及直接繼承自枚舉基類 System.Enum
與間接繼承自基類 System.ValueType
和 object
的成員。
在一個(gè)類中聲明的成員與繼承自基類的成員都是這個(gè)類的成員(除了沒有基類的 object
類)。繼承自基類的成員包括常量、字段、方法、屬性、事件、索引器、操作符以及基類類型,但不包括基類的實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)和靜態(tài)構(gòu)造函數(shù)?;惓蓡T的繼承并不關(guān)心它們的可訪問性。
類聲明可以包含常量、字段、方法、屬性、事件、索引器、操作符、實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)構(gòu)造函數(shù)和類型。
object
和 string
的成員通過別名直接對(duì)應(yīng)它們的類型:
object
的成員是 System.Object
類的成員;
string
的成員是 System.String
類的成員。接口成員聲明于接口及其所有基接口內(nèi)。嚴(yán)格來講,類 object
內(nèi)的成員不是任何接口的成員(見第十三章第二節(jié)),但通過接口類型成員查找到類 object
的成員(第七章第四節(jié))。
數(shù)組成員繼承自類 System.Array
。
委托成員繼承自類 System.Delegate
。
更多建議: