當前位置:成語大全網 - 新華字典 - 在C#中什麽是屬性、方法、事件、繼承、接口、封裝、索引器?

在C#中什麽是屬性、方法、事件、繼承、接口、封裝、索引器?

方法。就是c/c++中的函數,如果妳不懂得函數,妳就理解成完成某種特定任務的壹個代碼模塊。

property,屬性。(這裏還有個attribute,也可以翻譯成屬性,但有些書把attribute翻譯成性質,或者幹脆兩者都不翻譯直接用英文。)是c#中獨有的壹種機制,可以理解成私有成員(字段field)的訪問器。

event,事件。事件驅動不知道妳聽說過沒,如果進行人機交互,用戶幹了什麽程序要設法知道和捕捉,那麽這個事件就是妳幹了什麽的壹個抽象,比如,單擊鼠標左鍵就是壹個事件。

deleget,委托。就是c++中的函數指針,只是類型安全的。或者妳可以理解成它就是壹個方法的別名,而且它可以綁定到不同的方法只要規格壹致(即參數類型個數,返回值) 封裝

在C#中可使用類來達到數據封裝的效果,這樣就可以使數據與方法封裝成單壹元素,以便於通過方法存取數據。除此之外,還可以控制數據的存取方式。

面向對象程序設計中壹般以類作為數據封裝的基本單位。類將數據和操作數據的方法結合成壹個單位。在設計類時,不希望直接存取類中的數據,而是希望通過方法來存取數據。如此就可以達到封裝數據的目的,方便以後維護、升級,也可以在操作數據時多壹層判斷,提高安全性。

封裝還可以解決數據存取權限問題,使用封裝可以將數據隱藏起來,形成壹個封閉的空間,用戶可以設置哪些數據只能在這個空間中使用,哪些數據可以在空間外部使用。如果壹個類中包含敏感數據,則有些用戶可以訪問,有些用戶卻不能訪問。如果不對這些數據的訪問加以限制,那麽後果是很嚴重的。所以,在編寫程序時,要對類的成員使用不同的訪問修飾符,從而定義它們的訪問級別。

繼承

繼承是OOP最重要的特性之壹。任何類都可以從另外壹個類繼承,即這個類擁有它所繼承類的所有成員。在OOP中,被繼承的類稱為父類或基類。C# 提供了類的繼承機制,但C# 只支持單繼承,不支持多重繼承,即在C# 中壹次只允許繼承壹個類,不能同時繼承多個類。

利用繼承機制,用戶可以通過增加、修改或替換類中方法對這個類進行擴充,以適應不同的應用要求。利用繼承,程序開發人員可以在已有類的基礎上構造新類。繼承使得類支持分類的概念。在日常生活中很多東西比較有條理,那是因為它們有著很好的層次分類。如果不用層次分類,則要對每個對象定義其所有的性質。使用繼承後,每個對象就可以只定義自己的特殊性質。每壹層的對象只需定義本身的性質,其他性質可以從上壹層繼承下來。

在C# 中,接口允許多繼承,可以通過繼承多個接口來實現類似於C++中的多重繼承。

在繼承壹個基類時,成員的可訪問性是壹個重要的問題。子類不能訪問基類的私有成員,但是可以訪問其公***成員。子類和外部代碼都可以訪問公***成員。這就是說,只使用這兩個可訪問性,就可以讓壹個成員被基類和子類訪問,同時也可以被外部的代碼訪問。

為了解決這個問題,C# 還提供了第3種可訪問性:protected。只有派生類才能訪問protected成員,基類和外部代碼都不能訪問protected成員。

除了成員的保護級別外,用戶還可以為成員定義其繼承行為。基類的成員可以是虛擬的,成員可以由繼承它的類重寫。子類可以提供成員的其他執行代碼。這種執行代碼不會刪除原來的代碼,仍可以在類中訪問原來的代碼,但外部代碼不能訪問它們。如果沒有提供其他執行方式,外部代碼就訪問基類中成員的執行代碼。

虛擬成員不能是私有成員,因為成員不能同時由子類重寫,也不能訪問它。基類還可以定義為抽象類。抽象類不能直接實例化,要使用抽象類就必須繼承這個類,然後再實例化。

接口

類似數組的行為常受到程序實現者的喜愛,所以妳還可以為接口定義索引器,IList和 IDictionary集合接口都聲明了索引器以便訪問其存儲的項目。