最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#結(jié)構(gòu)和類的相關(guān)介紹

 更新時間:2012年12月04日 14:54:55   作者:  
結(jié)構(gòu)和類的共同點(diǎn)都是屬于抽象數(shù)據(jù)類型,包含數(shù)據(jù)和數(shù)據(jù)的操作。不同點(diǎn)在于結(jié)構(gòu)偏重于數(shù)據(jù)語意,而類偏重於行為語意。

我們不關(guān)心對象內(nèi)部是怎么實(shí)現(xiàn)的,我們關(guān)心的是他提供給我什么接口,有什么操作。從技術(shù)上來說,結(jié)構(gòu)屬于值類型,而類屬于引用類型。結(jié)構(gòu)不能指定繼承基類類型,類可以。不過結(jié)構(gòu)和類都能實(shí)現(xiàn)接口。
一、應(yīng)用場合
結(jié)構(gòu)的應(yīng)用場合:

一、自定義數(shù)據(jù)類型,數(shù)據(jù)成員是公開的,提供工具函數(shù)。

二、抽象的數(shù)據(jù)類型,數(shù)據(jù)成員是密封的,提供相關(guān)的數(shù)據(jù)操作函數(shù)。

總之,都是圍繞數(shù)據(jù)作文章。

類的應(yīng)用場合:

一、提供一組類,形成一個有機(jī)整體,形成一個系統(tǒng),類數(shù)據(jù)成員是密封的,只提供相互通信的函數(shù)接口。

類主要通過不同的類組成一個類間通信的系統(tǒng)。而類自身是整個系統(tǒng)的一部分。

二、成員和可訪問性
作為抽象數(shù)據(jù)類型的工具,類和結(jié)構(gòu)提供了豐富的封裝功能。

1.字段定義數(shù)據(jù)成員,無封裝

2.屬性封裝字段的訪問方式

3.函數(shù)提供可用操作

4.事件提供了處理消息的模型

5.索引器封裝了數(shù)據(jù)集合

另外

構(gòu)造函數(shù)、析構(gòu)函數(shù)負(fù)責(zé)初始化和清理垃圾(在c#中需要使用IDispose模式)

對于成員,可以有三大類,1、類成員,所有實(shí)例共享;(static 修飾)2、對象公開成員;(public 修飾)3、對象私有成員。其中公開成員是最重要的,私有成員屬于內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。

公開成員是對象的特征,因?yàn)閷τ谑褂谜邅碚f,只能通過公開成員和對象進(jìn)行互動??梢酝ㄟ^提取公開成員,形成一個獨(dú)立接口,用來隔離具體的實(shí)現(xiàn)。這樣,設(shè)計者便可以提供不同的類實(shí)現(xiàn)給客戶。

三、泛型和接口
類和結(jié)構(gòu)的共同點(diǎn)都是屬于實(shí)現(xiàn),而接口屬于規(guī)范,客戶端應(yīng)該避免直接接觸具體的實(shí)現(xiàn),否則客戶端就需要根據(jù)實(shí)現(xiàn)的變化而變化,這明顯是不經(jīng)濟(jì)的。但是類和結(jié)構(gòu)又有差別,類側(cè)重行為,因此和接口更加搭配;而結(jié)構(gòu)側(cè)重數(shù)據(jù),而接口是沒有數(shù)據(jù)的,并且接口屬于引用類型,當(dāng)結(jié)構(gòu)作為值類型轉(zhuǎn)化成接口,就會產(chǎn)生裝箱,會有性能問題。因此,接口一般不會配合結(jié)構(gòu)來使用,而結(jié)構(gòu)應(yīng)該作為更加單純的數(shù)據(jù)單元,不應(yīng)該添加太多功能性。如果需要設(shè)計功能豐富的組件,最好是基于類來實(shí)作。當(dāng)結(jié)構(gòu)作為數(shù)據(jù)單元,它要修改設(shè)計的余地很少,因?yàn)閿?shù)據(jù)單元的應(yīng)用場合更多是被其他人修改,不具太多自主性。結(jié)論是結(jié)構(gòu)自身便可以作為規(guī)范。

泛型是未完成的類型,因此提供了客戶端自定義類型的機(jī)會。泛型的每一個實(shí)例,都共享相同或者類似的代碼,那么客戶端需要泛型的理由是什么?

c#是強(qiáng)類型的系統(tǒng),就算邏輯上一樣,因?yàn)轭愋筒煌?,在編譯器看來都是完全不同的代碼。當(dāng)客戶端需要為不同類型采取相同的邏輯的時候,泛型就提供了一個快捷的,越過強(qiáng)類型限制的渠道。比如有個int + int 和 float + float在我們?nèi)祟惪磥韼缀跏且幻粯?,但是?qiáng)類型的編譯器要求你重復(fù)書寫代碼,泛型能做到T + T,然后讓客戶端用可支持+操作的參數(shù)生成任何類型。

從客戶端的角度,它不在乎實(shí)現(xiàn)是怎樣的,它在乎的是接口是怎樣的。泛型對客戶端的意義在于強(qiáng)化了接口,從提供特定類型的接口到提供滿足特定條件的一定范圍內(nèi)的類型的新型接口。這就讓可用性大大增強(qiáng)。(按照實(shí)際應(yīng)用情況,我們應(yīng)該將泛型視為常態(tài),單一類型的接口才是特殊態(tài))。

相關(guān)文章

  • 基于Unity制作一個簡易的計算器

    基于Unity制作一個簡易的計算器

    今天主要和大家分享如何使用Unity制作計算器,難度中等,可以用來學(xué)習(xí),或者當(dāng)成其他項(xiàng)目的小組件導(dǎo)入。當(dāng)然,也可以導(dǎo)出來,發(fā)布到網(wǎng)頁端,來做一個嵌入式工具也可以。感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-03-03
  • C#各種數(shù)組的用法實(shí)例演示

    C#各種數(shù)組的用法實(shí)例演示

    這篇文章主要介紹了C#各種數(shù)組的用法,有助于初學(xué)者學(xué)習(xí)并鞏固C#關(guān)于數(shù)組的用法,需要的朋友可以參考下
    2014-07-07
  • C#與java TCP通道加密通信實(shí)例

    C#與java TCP通道加密通信實(shí)例

    這篇文章主要介紹了C#與java TCP通道加密通信,文章通過真實(shí)的案例詳細(xì)講解說明C#與java TCP通道加密通信的相關(guān)資料,需要的小伙伴可以參考一下
    2021-10-10
  • C#解決文件被占用資源,無法刪除或修改的方法

    C#解決文件被占用資源,無法刪除或修改的方法

    這篇文章主要介紹C#解決文件被占用資源,比較實(shí)用,需要的朋友可以參考下。
    2016-06-06
  • 解析C#編程的通用結(jié)構(gòu)和程序書寫格式規(guī)范

    解析C#編程的通用結(jié)構(gòu)和程序書寫格式規(guī)范

    這篇文章主要介紹了C#編程的通用結(jié)構(gòu)和程序書寫格式規(guī)范,這里我們根據(jù)C#語言的開發(fā)方微軟給出的約定來作為編寫樣式參照,需要的朋友可以參考下
    2016-01-01
  • 詳解如何在C#中接受或拒絕Excel中的修訂

    詳解如何在C#中接受或拒絕Excel中的修訂

    修訂功能可以跟蹤文檔所有的修改,了解修改的過程,這對于團(tuán)隊(duì)協(xié)同文檔編輯、審閱是非常有用的一個功能。本文將詳細(xì)為您介紹如何接受或拒絕 Excel 中的修訂,感興趣的可以收藏一下
    2022-12-12
  • 基于WPF實(shí)現(xiàn)簡單的值轉(zhuǎn)換器

    基于WPF實(shí)現(xiàn)簡單的值轉(zhuǎn)換器

    值轉(zhuǎn)換器是?WPF?項(xiàng)目中具有特色的組成部分,這篇文章將帶大家實(shí)現(xiàn)一個標(biāo)準(zhǔn)的值轉(zhuǎn)換器,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2025-02-02
  • C#中DateTimePicker默認(rèn)值顯示為空的問題

    C#中DateTimePicker默認(rèn)值顯示為空的問題

    這篇文章主要介紹了C#中DateTimePicker默認(rèn)值顯示為空的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • C#中Params的用法

    C#中Params的用法

    這篇文章主要介紹了C#中Params的用法,以實(shí)例的形式展示了采用Params在不知道參數(shù)的數(shù)量時的應(yīng)用技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2014-11-11
  • Unity實(shí)現(xiàn)卡片循環(huán)滾動效果的示例詳解

    Unity實(shí)現(xiàn)卡片循環(huán)滾動效果的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Unity實(shí)現(xiàn)卡片循環(huán)滾動的效果,文中的實(shí)現(xiàn)步驟講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下
    2022-12-12

最新評論

曲阳县| 黄石市| 习水县| 乌拉特前旗| 和顺县| 盐源县| 建宁县| 洪泽县| 牡丹江市| 海丰县| 大新县| 宜兴市| 荆州市| 定西市| 自治县| 始兴县| 沧州市| 江源县| 阳曲县| 岳池县| 扶沟县| 连城县| 桑日县| 彭泽县| 大理市| 新巴尔虎右旗| 库尔勒市| 习水县| 通许县| 新晃| 石家庄市| 隆子县| 济宁市| 重庆市| 东台市| 武宁县| 通化县| 山丹县| 当雄县| 石河子市| 乌兰浩特市|