国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

C#結構體和類的區別淺析

開發 后端
C#結構體和類的區別是什么呢?C#結構體和類的區別是如何表現的呢?本文就向你講述這方面的內容。

C#結構體和類的區別問題:在C#編程語言中,類屬于引用類型的數據類型,結構體屬于值類型的數據類型,這兩種數據類型的本質區別主要是各自指向的內存位置不同。傳遞類的時候,主要表現為是否同時改變了源對象。

C#結構體和類的區別技術要點:

◆類在傳遞的時候,傳遞的內容是位于托管內存中的位置,結構體在傳遞的時候,傳遞的內容是位于程序堆棧區的內容。當類的傳遞對象修改時,將同時修改源對象,而結構體的傳遞對象修改時,不會對源對象產生影響。

◆在一個類中,可以定義默認的、不帶參數的構造函數,而在結構體中不能定義默認的、不帶參數的構造函數。兩者都可以定義帶有參數的構造函數,通過這些參數給各自的字段賦值或初始化。

C#結構體和類的區別之實現步驟

(1)創建控制臺應用程序項目,命名為“ClassAndStruct”。

(2)打開并編輯Program.cs文件,代碼如下所示。

  1. using System;   //C#結構體和類的區別
  2.  
  3. using System.Collections.Generic;   
  4.  
  5. using System.Text;   
  6.  
  7. namespace ClassAndStruct   
  8.  
  9. {   
  10.  
  11. class Program   
  12.  
  13. {   
  14.  
  15. static void Main(string[] args)   
  16.  
  17. {   
  18.  
  19. //使用帶參數的構造函數創建員工類的實例   
  20.  
  21. classEmployee clsEmpA = new 
  22. classEmployee("Pony","Smith",43);   
  23.  
  24. classEmployee clsEmpB = clsEmpA;   
  25.  
  26. //修改引用數據   
  27.  
  28. clsEmpB.Age = 33;   
  29.  
  30. //使用帶參數的構造函數創建員工結構體的實例   
  31.  
  32. structEmployee strctEmpA = 
  33. new structEmployee("Pony""Smith", 43);   
  34.  
  35. structEmployee strctEmpB = strctEmpA;   
  36.  
  37. //修改   
  38.  
  39. strctEmpB.Age = 33;   
  40.  
  41. Console.WriteLine("類的數據:姓名-{0} {1} 年齡-{2}",   
  42.  
  43. clsEmpA.FirstName,clsEmpA.LastName,clsEmpA.Age);   
  44.  
  45. Console.WriteLine("結構體的數據:姓名-{0} {1} 年齡-{2}",   
  46.  
  47. strctEmpA.FirstName, strctEmpA.LastName, strctEmpA.Age);   
  48.  
  49. Console.ReadLine();   
  50.  
  51. }   
  52.  
  53. }   
  54.  
  55. class classEmployee//表示員工的類   
  56.  
  57. {   
  58.  
  59. private string firstname;   
  60.  
  61. public string FirstName   
  62.  
  63. {   
  64.  
  65. get { return firstname; }   
  66.  
  67. set { firstname = value; }   
  68.  
  69. }   
  70.  
  71. private string lastname;   
  72.  
  73. public string LastName   
  74.  
  75. {   
  76.  
  77. get { return lastname; }   
  78.  
  79. set { lastname = value; }   
  80.  
  81. }   
  82.  
  83. private int age;   
  84.  
  85. public int Age   
  86.  
  87. {   
  88.  
  89. get { return age; }   
  90.  
  91. set { age = value; }   
  92.  
  93. }   
  94.  
  95. //類的默認構造函數,可以在類中重新定義   
  96.  
  97. public classEmployee()   
  98.  
  99. {   
  100.  
  101. firstname = "";   
  102.  
  103. lastname = "";   
  104.  
  105. age = 0;   
  106.  
  107. }   
  108.  //C#結構體和類的區別
  109. //類的帶參數的構造函數,在構造類實例的同時給字段賦值   
  110.  
  111. public classEmployee(
  112. string strFirstNamem, string strLastName, int iAge)   
  113.  
  114. {   
  115.  
  116. firstname = strFirstNamem;   
  117.  
  118. lastname = strLastName;   
  119.  
  120. age = iAge;   
  121.  
  122. }   
  123.  
  124. }   
  125.  
  126. struct structEmployee//表示員工的結構體   
  127.  
  128. {   
  129.  
  130. private string firstname;   
  131.  
  132. public string FirstName   
  133.  
  134. {   
  135.  
  136. get { return firstname; }   
  137.  
  138. set { firstname = value; }   
  139.  
  140. }   
  141.  
  142. private string lastname;   
  143.  
  144. public string LastName   
  145.  
  146. {   
  147.  
  148. get { return lastname; }   
  149.  
  150. set { lastname = value; }   
  151.  
  152. }   
  153.  //C#結構體和類的區別
  154. private int age;   
  155.  
  156. public int Age   
  157.  
  158. {   
  159.  
  160. get { return age; }   
  161.  
  162. set { age = value; }   
  163.  
  164. }   
  165.  
  166. //在結構體中不能定義默認的不帶參數的構造函數,只能定義結構體的帶參數的構造函數   
  167.  
  168. public structEmployee(string strFirstNamem, 
  169. string strLastName, int iAge)   
  170.  
  171. {   
  172.  
  173. firstname = strFirstNamem;   
  174.  
  175. lastname = strLastName;   
  176.  
  177. age = iAge;   
  178.  
  179. }   
  180.  
  181. }   
  182.  
  183. }  

(3)按F5鍵運行程序,運行結果如下所示。

類的數據:姓名-Pony Smith 年齡-33

結構體的數據:姓名-Pony Smith 年齡-43

C#結構體和類的區別之源程序解讀

(1)本示例為了說明在傳遞時C#結構體和類的區別,在程序中分別定義了表示員工的類classEmployee類和表示員工的結構體structEmployee,并定義了各自的字段和構造函數。在主程序入口Main方法中,聲明類的實例clsEmpA和clsEmpB,并使用構造函數創建clsEmpA類實例,然后將clsEmpA類實例傳遞給clsEmpB類實例,修改clsEmpB類實例的字段值,最后打印clsEmpA類實例中的字段,查看字段的值是否隨clsEmpB類實例字段的修改而變化。同時,聲明結構體的實例strctEmpA和strctEmpB,并使用構造函數創建strctEmpA結構體實例,然后將strctEmpA結構體實例傳遞給strctEmpB結構體實例,修改strctEmpB結構體實例的字段值,最后打印strctEmpA結構體實例中的字段,查看字段的值是否隨strctEmpB結構體實例字段的修改而變化。程序的流程圖如圖8.1所示。 

(2)C#結構體和類的區別還有一個比較明顯的區別,就是類能夠定義默認的、不帶參數的構造函數,并能在該構造函數中初始化字段。而結構體不允許定義默認的、不帶參數的構造函數。

C#結構體和類的區別的相關內容就向你介紹到這里,希望對你學習和了解C#結構體和類的區別有所幫助。

【編輯推薦】

  1. C#結構體的特點淺析
  2. C#結構體數組間的轉化淺析
  3. 解決C#結構體數組間的轉化
  4. C#結構體使用淺析
  5. C#構造函數介紹及分類淺析
責任編輯:仲衡 來源: 百度空間
相關推薦

2009-08-27 16:18:47

C#類C#結構體

2009-08-13 13:29:04

C#結構體使用

2009-08-13 11:18:50

C#結構體

2009-08-13 14:56:46

C#的結構體使用

2009-08-31 15:02:22

C#解析結構體指針

2009-08-13 13:03:52

C#結構體數組

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-08-17 18:04:49

C# 枚舉

2009-08-21 17:24:06

C# SingleIn

2009-08-21 11:31:59

異步和多線程的區別

2009-08-14 11:05:28

C#語言的結構體

2009-08-13 14:46:03

C#結構體定義

2009-09-23 09:36:34

C#數組

2009-08-27 13:37:11

C#類和結構

2009-08-10 10:37:17

C#類與結構

2009-08-13 17:30:30

C#構造函數

2009-08-13 14:24:44

C#結構體構造函數

2010-07-12 09:07:30

C#

2009-08-26 09:54:45

C#打印預覽C#打印
點贊
收藏

51CTO技術棧公眾號

高清av一区二区| 红桃视频成人在线观看| 国产精品极品美女粉嫩高清在线| 可以在线观看的av| 老司机精品视频一区二区三区| 欧美激情第三页| 欧美三级黄网| 国产精品国产a| 欧美一级黄色录像片| 91久久电影| 国内揄拍国内精品| 在线免费三级电影网站| 91精品福利视频| 黄色av网站在线观看| 成人激情午夜影院| 日本一区二区三区免费看| 欧美日韩性在线观看| 欧美另类交人妖| 久久sese| 亚洲精品久久久久| 国产淫片在线观看| 日韩欧美精品在线观看| av三级影院| 国产日韩av一区| 一二三在线视频| 男人操女人的视频在线观看欧美| 91久久精品在线| 蜜桃成人av| 久久久久久久久久久免费精品| 日本美女久久| 国产视频欧美视频| 日本性爱视频在线观看| 欧美自拍丝袜亚洲| 伊人中文字幕在线| 午夜久久久久久电影| 久久.com| 亚洲人成网站在线| 香蕉视频禁止18| 国产亚洲综合在线| 成人性做爰aaa片免费看不忠| 国产揄拍国内精品对白| 天堂va久久久噜噜噜久久va| 在线亚洲国产精品网站| 国产综合动作在线观看| 亚洲国产免费看| 国产欧美在线一区二区| 中文字幕在线视频观看| 色香蕉成人二区免费| 99蜜桃臀久久久欧美精品网站| 国产一区二区三区在线观看精品| 午夜精品短视频| 免费成人av在线播放| 久久久亚洲综合网站| 欧美一区二区三区久久精品| 亚洲v日韩v综合v精品v| 国产一区亚洲| 九九九热999| 免费久久99精品国产| 一道本在线观看视频| 国产91精品久久久久久久网曝门| 久久精品xxx| 久久综合999| 国产精美视频| 色香蕉成人二区免费| fc2ppv国产精品久久| 日韩av一区二区在线| 欧美成人三级| 欧美一区二区.| 亚洲欧洲日韩| 日韩精品大片| 97成人超碰视| 激情六月丁香| 91精品国产综合久久小美女| 日本大片在线播放| 久久中文字幕国产| 精品视频日韩| 日本一区二区在线视频观看| 国产在线视视频有精品| 男人插女人下面免费视频| 精品美女国产在线| av第一福利在线导航| 欧美第一页在线| 日韩欧美视频在线播放| 欧美精品一区二区三区久久| 成人黄色一级视频| 精品国产一区二区三区四区阿崩| 欧美久久久久久久久中文字幕| 手机在线观看av网站| 久久久久久国产精品三级玉女聊斋 | 欧美电影网址| 国内精品小视频| 国产精品综合| 国产视频一区二区三区在线播放| 偷拍亚洲欧洲综合| 亚洲第一av| 国产免费观看久久黄| 麻豆91精品视频| 羞羞网www| 亚洲国产日韩欧美在线99| 丁香婷婷成人| 日韩av不卡在线播放| 国产精品伦理在线| 亚洲第一图区| 日本欧美一级片| 麻豆成人免费电影| 久草在线官网| 在线看福利67194| 亚洲三级观看| 国产女呦网站| 尤物九九久久国产精品的分类| 国产99久久精品一区二区300| 亚洲精品免费在线看| 亚洲国产一区在线观看| 日日夜夜天天综合| 国产精品乱码视频| 综合久久久久久| 国产综合色在线观看| http;//www.99re视频| 国产亚洲一区二区三区| 波多野结依一区| 91久久精品国产91性色| 久久色.com| 性xxxxfreexxxxx欧美丶| 国产精品国产精品国产专区蜜臀ah | 国产精品久久久久久久久久免费| 国产一区不卡在线| 日本不卡视频| 国产精品天天狠天天看| 久久先锋资源网| 蜜桃av.网站在线观看| 成人久久18免费网站漫画| 国产精品九色蝌蚪自拍| 欧美日韩免费观看视频| 欧美一区二区三区四区夜夜大片 | 国产视频一区欧美| 九色中文视频| 久久久久久中文| 成人国产精品免费观看视频| av免费在线观| 国产另类自拍| 色999日韩国产欧美一区二区| 久久365资源| wwwxxx黄色片| 最新中文字幕亚洲| 国产91精品久久久久久久网曝门| 日韩少妇视频| 久久成人资源| 欧美日本在线一区| 国产一区二区三区四区三区四| 成人做爰高清视频网站| 欧美极品美女视频网站在线观看免费| 国产麻豆视频一区| 午夜影院一区| 国产精品夜夜夜爽张柏芝| 日韩一区二区三区视频| 亚洲免费影视| 日本小视频在线免费观看| 欧美亚洲丝袜| 欧美精品一区二区久久婷婷| 99精品视频免费| 91精选在线| 国产又粗又爽又黄的视频| 亚洲精品国精品久久99热一| 国产一区二区福利| 91麻豆精品| 日韩一区二区三区久久| 91av在线免费观看| 亚洲国产精品一区二区www| 日韩成人a**站| 韩日视频在线| 欧美裸体网站| 亚洲人成在线播放| 久久久一区二区三区| 欧美a级网站| 在线播放国产区| 成人午夜电影免费在线观看| 欧美群妇大交群中文字幕| 日韩高清在线观看| 亚洲人体影院| 欧美国产激情视频| 欧美中文在线观看| 日韩欧美在线一区| 蜜臀av性久久久久蜜臀av麻豆| **欧美日韩在线观看| 爆乳熟妇一区二区三区霸乳| 欧美自拍视频在线| 欧美三级视频在线观看| 精品一区二区免费| 9国产精品午夜| 精品推荐蜜桃传媒| 亚洲视频小说| 超碰精品一区二区三区乱码| 国产精品久久99| 精品电影一区| 成人在线高清| 中文字幕视频在线免费| 欧美视频观看一区| 欧美成人精品在线观看| 亚洲va欧美va人人爽| 麻豆精品在线观看|