国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET虛擬對象系統中的通用語言規范

2024-07-10 12:37:59
字體:
來源:轉載
供稿:網友

通用語言規范(CLS)并不是虛擬對象系統(VOS)真正的一部分,它是特殊的。CLS定義了VOS中的一個類型子集,也定義了必須符合CLS的常規用法。

那么,對此有什么迷惑呢?如果一個類庫遵守CLS規則,其它編程語言同樣也遵守CLS規則,那么其它編程語言的客戶也可以使用類庫。CLS是關于語言的交互可操作性(interoperability)。因此,常規用法必須僅遵循外部可訪問項目 (externally visible items)如方法、屬性和事件等等。

我所描述的優點是你可以做以下工作。用C#寫一個組件,在VB中派生它,因加在VB中的功能是如此之強大,在C#中再次從VB類派生它。只要所有的外部可訪問項遵守CLS規則,這樣是可行的。

我在這本書中出示的代碼不關心CLS協定。但在構建你的類庫時要注意到CLS協定。

這個清單不完整。它僅包含一些很重要的項目。我不指出出現在本書中每一種類型的CLS協定,所以有個好主意:當你尋找CLS協定時,至少應該瀏覽該表,以了解哪種功能有效。不要擔心你不熟悉這張表中的每一個含義,在這本書中你會學到它們。

通能語言規范中的類型和功能

·bool    ·char   ·byte  ·short  ·int    ·long ·float ·double  ·string ·object(所有對象之母) 

Arrays(數組)

數組的維數必須是已知的(>=1),而且最小下標數必須為0。

元素類型必須是一個CLS類型。

類型(Types)

可以被抽象或隱藏。

零或更多的接口可以被實現。不同的接口允許擁有具有相同名字和簽名的方法。

一個類型可以準確地從一個類型派生。允許成員被覆蓋和被隱藏。

可以有零或更多的成員,它們是域成員、方法、事件或者類型。

類型可以擁有零或更多個構造函數。

一種類型的可訪問性可以是公共的或者對NGWS組件來說是局部的;但是,只有公共成員可以認為是類型接口的一部分。

所有的值型必須從系統值型繼承。異常是一個枚舉——它必須從系統枚舉(System Enum)繼承。

類型成員

類型成員允許隱藏或者覆蓋另一種類型中的其它成員。

參數和返回值的類型都必須是 CLS 協定類型。

構造函數、方法和屬性可以被重載。

一個類型可以有抽象成員,但僅當類型不被封裝時。

方法

一種方法可以是靜態、虛擬或者實例。

虛擬和實例方法可以是抽象的,或者是一個實現。靜態方法必須總擁有一個實現。

虛擬方法可能是最后的(或者不是)。

域成員

可以是靜態或者是非靜態。

靜態域成員可以被描述或只初始化。

屬性

當獲取和設置方法而不是使用屬性語法時,屬性可以公開。

獲取的返回類型和設置方法的第一個參數必須是相同的CLS類型——屬性的類型。

屬性名字必須不同,不同的屬性類型用于區分是不充分的。

由于使用方法實現屬性訪問,如果 PropertyName 是同一個類中定義的一個屬性,你不能實現命名為 get_PropertyName 和 set_PropertyName 的方法。

屬性可以被索引。

屬性訪問必須遵循這種命名格式:get_ProName,set_PropName。

枚舉

強調類型必須是byte、short、int 或long。

每一個成員是一個枚舉類型的靜態描述域成員

一個枚舉不能實現任何接口。

你允許給多個域成員設定相同的值。

一個枚舉必須繼承系統枚舉(隱含在C#中)

異常

可以被引發和被捕獲。

自定義異常必須繼承系統異常。

接口

可需要實現其它接口。

一個接口可以定義屬性、事件和虛擬方法。實現取決于派生類。

事件

要么都進行增加方法和取消方法,要么都不進行。每一種方法采用一個參數,它是從系統代表元(System Delegate)派生下來的一個類。

自定義屬性

可以僅使用下列類型:Type(類型),char, char, bool, byte, short, int, long, float, double, enum (一種CLS 類型), and object.

代表元(Delegates)

可以被創建和被激活

標識符(Identifiers)

一個標識符的第一個字母必須來自一限制集。

通過大小寫在單一范圍內,不可能唯一地區別兩個或更多個標識符(大小寫不敏感)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 利辛县| 濮阳县| 郓城县| 新乡市| 和林格尔县| 巨鹿县| 方城县| 栾川县| 常熟市| 黔西| 萨迦县| 涿州市| 阳泉市| 丰都县| 云林县| 盐山县| 蕲春县| 团风县| 虹口区| 桦南县| 陈巴尔虎旗| 偃师市| 五大连池市| 从江县| 凤凰县| 醴陵市| 达拉特旗| 松桃| 宁阳县| 张家川| 建阳市| 理塘县| 门头沟区| 龙山县| 柘城县| 彭泽县| 交城县| 水富县| 丹阳市| 美姑县| 古浪县|