成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#值類型賦值與引用類型的賦值

開發 后端
C#編程中,大家會經常使用到不同的數據類型。本文介紹的是C#值類型賦值與引用類型的賦值,希望對你有幫助,一起來看。

C#中,數據類型大致可以分為兩類,一類是值類型,一類是引用類型。初學者往往會被類型之間的相互賦值搞的很迷惑,尤其是引用類型變量的相互賦值。

現在舉2個例子,來一一說明。

值類型變量的賦值: 值類型變量中保存的是實際數據,在賦值的時候只是把數據復制一份,然后賦給另一個變量。

例子1:

 

  1. int var1=2;  
  2. int var2=var1; //編譯器會先復制var1的值,然后把它賦給var2.很明顯var2的值也為2  

 

引用類型變量的賦值: 引用類型變量中保存的是“指向實際數據的引用指針”。在進行賦值操作的時候,它和值類型一樣,也是先有一個復制的操作,不過它復制的不是實際的數據,而是引用(真實數據的內存地址)。

所以引用類型的變量在賦值的時候,賦給另一變量的實際上是內存地址。這樣賦值完成后,2個引用變量中保存的是同一引用,他們的指向完全一樣。

例子2:

 

  1. class MyClass   
  2. {  
  3. public int val;  
  4. }  
  5. struct MyStruct  
  6. {  
  7. public int val;  
  8. }  
  9. class Program  
  10. {  
  11. static void Main(string[] args)  
  12. {  
  13. MyClass objectA=new MyClass();  
  14. MyClass objectB=objectA; //引用變量的賦值 賦值操作完成后,兩個變量都指向同一內存地址  
  15. objectA.val=10; //給objectA.val賦值=10 由于objectB和objectA指向同一內存地址,所以ojbectB.val的值也為10  
  16. objectB.val=20; //給objectB.val賦值=20 由于objectB和objectA指向同一內存地址,所以objectA.val的值也為20  
  17. MyStruct structA=new MyStruct();  
  18. MyStruct structB=structA; //結構是值類型 賦值操作完成后,兩個結構中的結構信息一致。注意是“結構中的信息”一致。  
  19. structA.val=30;  
  20. structA.val=40;  
  21. Console.WriteLine(objectA.val); //輸出結果是20  
  22. Console.WriteLine(objectB.val); //輸出結果是20  
  23. Console.WriteLine(structA.val); //輸出結果是30  
  24. Console.WriteLine(structB.val); //輸出結果是40  
  25. Console.ReadLine();  
  26. }  

 

從上面2個例子可以看出,值類型變量的賦值操作,僅僅是2個實際數據之間的復制。而引用類型變量的賦值操作,復制的是引用,即內存地址,由于賦值后二者都指向同一內存地址,所以改變其中一個,另一個也會跟著改變,二者就像綁定在了一起。

【編輯推薦】

  1. c#.net實體類序列化方法
  2. 用C#實現HTTP協議下的多線程文件傳輸
  3. 解析C#委托、時間和Lambda表達式
  4. C#中的閉包是怎么捕獲變量的
  5. C#控件的閃爍問題解決方法總結
責任編輯:于鐵 來源: 博客園
相關推薦

2013-05-23 17:21:16

C#

2009-08-19 16:39:44

C#值類型C#引用類型

2009-08-26 14:05:19

C#值類型和引用類型

2009-08-14 17:09:48

C#引用類型

2009-10-22 18:41:49

CLR VIA C#教

2009-08-27 16:39:26

C# String類型

2009-08-31 14:34:46

C#值類型C#結構類型

2009-09-03 16:55:58

C#引用類型

2009-08-06 10:14:15

C#引用類型數組

2009-09-11 11:09:36

C#引用類型

2009-08-03 17:51:43

C#引用類型

2009-09-11 11:17:04

C#引用類型

2009-08-03 14:54:23

值類型C#

2009-08-24 13:52:04

C# 泛型約束

2009-08-25 17:52:01

C#可空值類型

2009-10-10 09:53:07

.NET值類型

2024-03-12 10:25:14

C#Dictionary編程語言

2009-08-10 17:25:58

C#匿名類型

2009-08-12 15:20:18

C#賦值運算符復合賦值運算符

2009-08-12 15:02:49

C#賦值運算符簡單賦值運算符
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本中文字幕在线观看 | 天天躁日日躁狠狠躁2018小说 | 99精品在线 | 日本精品视频在线观看 | 日韩精品视频一区二区三区 | 天堂成人国产精品一区 | 久久久久久久成人 | 久操av在线| 亚洲精品久久久久久久久久久 | 91精品国产综合久久香蕉922 | 91精品国产91久久久久久吃药 | 91视频免费观看 | 欧美日韩亚洲一区 | 不卡视频一区二区三区 | 亚洲精品中文字幕在线观看 | 欧美黑人狂野猛交老妇 | 亚洲免费视频一区 | 福利久久| 黄色永久免费 | 久久精品久久久久久 | 国内精品久久久久久久影视简单 | 在线视频一区二区三区 | 国产在线麻豆精品入口 | 玖草资源 | 激情 亚洲 | 美日韩一区二区 | 美女爽到呻吟久久久久 | 久久精品国产99国产精品亚洲 | 久久久久国产一区二区三区 | 日韩色在线 | 罗宾被扒开腿做同人网站 | 中文字幕av网 | 国产在线观看一区二区三区 | 日本黄色的视频 | 国产精品99久久久久久久久久久久 | 日韩精品一区二区三区中文字幕 | 国产精品精品久久久久久 | 国产高清视频 | 欧美日韩亚洲视频 | 在线观看精品 | 国产三级|