自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析C#類和C#結(jié)構(gòu)體的關(guān)系

開發(fā) 后端
本文分別介紹了c#類和c#結(jié)構(gòu)體的概念,并且分析了二者的相同之處和不同之處,供大家參考。

C#類:類是C# 中功能最為強(qiáng)大的數(shù)據(jù)類型,類也定義了數(shù)據(jù)類型的數(shù)據(jù)和行為。然后,程序員可以創(chuàng)建作為此類的實例的對象。

C#結(jié)構(gòu)體:結(jié)構(gòu)體是輕量型的類,使用開銷相對于類較小。

C#類和C#結(jié)構(gòu)體兩者的關(guān)系:

1.數(shù)據(jù)類型:類和結(jié)構(gòu)體都是數(shù)據(jù)類型,類是引用類型,結(jié)構(gòu)體是值類型。

2.繼承性:類可以繼承和被繼承,而結(jié)構(gòu)體隱式繼承于object,不可以繼承(除接口以外)和被繼承

3.構(gòu)造函數(shù):類和結(jié)構(gòu)體都有默認(rèn)(無參)構(gòu)造函數(shù),只不過結(jié)構(gòu)體不能顯示聲明默認(rèn)(無參)構(gòu)造函數(shù),

4.字段初始化:類可以對字段聲明時賦值初始化,而結(jié)構(gòu)體不可以(除const和static之外),結(jié)構(gòu)體的字段必須在構(gòu)造函數(shù)中進(jìn)行初始化。

5.實例化:結(jié)構(gòu)體實例化時可以不使用new,,如果不使用new,那么在初始化所有字段之前,字段將保持未賦值狀態(tài)且對象不可用。而類必須使用new進(jìn)行實例化。

如何選擇C#結(jié)構(gòu)體還是C#類   

討論了結(jié)構(gòu)與類的相同之處和差別之后,下面討論如何選擇使用結(jié)構(gòu)還是類:  

1.堆棧的空間有限,對于大量的邏輯的對象,創(chuàng)建類要比創(chuàng)建結(jié)構(gòu)好一些  

2.結(jié)構(gòu)表示如點、矩形和顏色這樣的輕量對象,例如,如果聲明一個含有   1000   個點對象的數(shù)組,則將為引用每個對象分配附加的內(nèi)存。在此情況下,結(jié)構(gòu)的成本較低。  

3.在表現(xiàn)抽象和多級別的對象層次時,類是***的選擇 

4.大多數(shù)情況下該類型只是一些數(shù)據(jù)時,結(jié)構(gòu)時***的選擇 ,struct 類型是一種值類型,通常用來封裝小型相關(guān)變量組,例如,矩形的坐標(biāo)或庫存商品的特征。 

【編輯推薦】

  1. C#語言讀書心得備忘
  2. 詳解C#制做Active控件的五個步驟
  3. 總結(jié)C#多線程的點點滴滴
  4. 學(xué)習(xí)C#多線程:lock的用法
  5. 各種C#數(shù)組的定義和初始化
責(zé)任編輯:book05 來源: hi.baidu
相關(guān)推薦

2009-08-13 14:06:37

C#結(jié)構(gòu)體結(jié)構(gòu)體和類的區(qū)別

2009-08-13 13:29:04

C#結(jié)構(gòu)體使用

2009-08-13 11:18:50

C#結(jié)構(gòu)體

2009-08-31 15:02:22

C#解析結(jié)構(gòu)體指針

2009-08-13 14:56:46

C#的結(jié)構(gòu)體使用

2009-08-13 13:03:52

C#結(jié)構(gòu)體數(shù)組

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-08-21 17:24:06

C# SingleIn

2009-08-26 09:54:45

C#打印預(yù)覽C#打印

2009-08-14 11:05:28

C#語言的結(jié)構(gòu)體

2009-08-13 14:46:03

C#結(jié)構(gòu)體定義

2009-08-27 13:37:11

C#類和結(jié)構(gòu)

2009-08-25 17:59:49

C#入門

2009-09-23 09:36:34

C#數(shù)組

2009-08-13 15:03:58

C#結(jié)構(gòu)體變量

2009-08-13 14:24:44

C#結(jié)構(gòu)體構(gòu)造函數(shù)

2009-08-19 10:41:14

C# switch和c

2009-08-27 13:50:08

C# StringBu

2010-01-18 11:05:24

C++
點贊
收藏

51CTO技術(shù)棧公眾號