八 通用型別系統

2022-01-14 16:02:16 字數 993 閱讀 1880

1、通用型別簡介        

clr中的一切都圍繞型別展開,因為il是物件導向的高階機器語言.型別向應用程式和其他型別公開了功能.通過型別,用一種程式語言寫的**能與另一種程式語言寫的**溝通.由於型別是clr的根本,所以ms制定了乙個正式的規範來描述型別的定義和行為,這就是"通用型別系統"(common type system,cts).

2、通用型別(cts)規範

cts規範規定,乙個型別可以包含零個或者多個成員.成員如下:

(1)、字段

作為物件狀態一部分的資料變數.欄位根據名稱和型別來區分

(2)、方法

針對物件執行操作的函式,通常會改變物件狀態,方法有乙個名稱、乙個簽名以及乙個或多個修飾符。簽名指定引數數量(及其順序).引數型別:方法是否有返回值,如果有返回值,還要指定返回值型別.

(3)、屬性

對於呼叫者,屬性看起來像是欄位.但對於型別的實現者,屬性看起來像是乙個方法(或者兩個方法,get和set方法).屬性允許在訪問值之前校驗輸入引數和物件狀態,以及/或者盡在必要時才計算某個值.屬性還允許型別的使用者採用簡化的語法.最後,屬性只允許建立唯讀或只寫的"字段".

(4)、事件

時間在物件以及其他相關物件之間實現了通知機制。具體請參考c# 事件

3、成員修飾符

通用型別系統(cts)指定了型別可見性規則以及型別成員的訪問規則.如下:

(1)、public

如果將型別標記為public,那麼任何程式集都能看見並訪問該型別

(2)、assembly(在c#中使用internal修飾符)

只有在同乙個程式集中的**才能看見並訪問該型別.

(3)、private

被private修飾的成員智慧型由同乙個型別中的其他成員訪問

(4)、family(在c#中使用protected修飾符)

成員可由派生型別訪問,不管那些型別是否在同一程式集中

(5)、protected internal

成員只能由同一程式集中的任何型別來訪問.

華為Harmony鴻蒙開發筆記八 通知

通知還是比價簡單的,很容易就實現。首先,實現乙個notificationslot,用來設定通知的方式和等級 private notificationslot slot private void initnotificationslot catch remoteexception ex 然後就可以定義...

centos6 7通用檢視系統版本

方法一 可以用lsb release a來檢視系統版本 root centos6 lsb release a lsb version base 4.0 amd64 base 4.0 noarch core 4.0 amd64 core 4.0 noarch graphics 4.0 amd64 gr...

centos6 7通用檢視系統版本

要寫乙個centos系統的初始化指令碼,但是centos6和centos7版本有很多命令都不相同,所以為了讓指令碼在兩個版本之間都可以使用,就需要對centos系統版本進行判斷。通過查詢各種資料,我發現基本有下面幾種檢視系統版本的方法 lsb release a root centos6 lsb r...