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

C#賦值運算符之簡單賦值運算符

開發 后端
C#賦值運算符之簡單賦值運算符是指什么呢?C#賦值運算符之簡單賦值運算符的使用又是什么情況呢?那么本文就向你介紹具體的內容。

C#賦值運算符之簡單賦值運算符的概念:

= 運算符稱為簡單賦值運算符。在簡單賦值中,右操作數表達式所屬的類型必須可隱式地轉換為左操作數所屬的類型。運算將右操作數的值賦予左操作數指定的變量、屬性或索引器元素。

簡單賦值表達式的結果是賦予左操作數的值。結果的類型與左操作數相同,且始終為值類別。

如果左操作數為屬性或索引器訪問,則該屬性或索引器必須具有 set 訪問器。如果不是這樣,則發生編譯時錯誤。

x = y 形式的簡單賦值的運行時處理包括以下步驟:

如果 x 屬于變量:

計算 x 以產生變量。

如果要求,則計算 y,必要時還需通過隱式轉換將其轉換為 x 的類型。

如果 x 給定的變量是引用類型的數組元素,則執行運行時檢查以確保為 y 計算的值與以 x 為其元素的那個數組實例兼容。如果 y 為 null,或存在從 y 引用的實例的實際類型到包含 x 的數組實例的實際元素類型的隱式引用轉換,則檢查成功。否則,引發 System.ArrayTypeMismatchException。

y 的計算和轉換后所產生的值存儲在 x 的計算所確定的位置中。

如果 x 屬于屬性或索引器訪問:

計算與 x 關聯的實例表達式(如果 x 不是 static)和參數列表(如果 x 是索引器訪問),結果用于后面的對 set 訪問器調用。

計算 y,必要時還需通過隱式轉換將其轉換為 x 的類型。

調用 x 的 set 訪問器,并將 y 的上述結果值作為該訪問器的 value 參數。

C#賦值運算符之簡單賦值運算符的使用:

如果存在從 B 到 A 的隱式引用轉換,則數組協方差規則允許數組類型 A[] 的值成為對數組類型 B[] 的實例的引用。由于這些規則,對引用類型的數組元素的賦值需要運行時檢查以確保所賦的值與數組實例兼容。在下面的示例中,

  1. string[] sa = new string[10];  
  2. object[] oa = sa;  
  3. oa[0] = null;               // Ok  
  4. oa[1] = "Hello";            // Ok  
  5. oa[2] = new ArrayList();   // ArrayTypeMismatchException 

最后的賦值導致引發 System.ArrayTypeMismatchException,這是因為 ArrayList 的實例不能存儲在 string[] 的元素中。

當“結構類型”中聲明的屬性或索引器是賦值的目標時,與屬性或索引器訪問關聯的實例表達式必須為變量類別。如果該實例表達式歸類為值類別,則發生編譯時錯誤。

給定下列聲明:

  1. struct Point  
  2. {  
  3.    int x, y;  
  4.    public Point(int x, int y) {  
  5.       this.x = x;  
  6.       this.y = y;  
  7.    }  
  8.    public int X {  
  9.       get { return x; }  
  10.       set { x = value; }  
  11.    }  
  12.    public int Y {  
  13.       get { return y; }  
  14.       set { y = value; }  
  15.    }  
  16. }  
  17. struct Rectangle  
  18. {  
  19.    Point a, b;  
  20.    public Rectangle(Point a, Point b) {  
  21.       this.a = a;  
  22.       this.b = b;  
  23.    }  
  24.    public Point A {  
  25.       get { return a; }  
  26.       set { a = value; }  
  27.    }  
  28.    public Point B {  
  29.       get { return b; }  
  30.       set { b = value; }  
  31.    }  

在下面的示例中,

  1. Point p = new Point();  
  2. p.X = 100;  
  3. p.Y = 100;  
  4. Rectangle r = new Rectangle();  
  5. r.A = new Point(10, 10);  
  6. r.B = p; 

由于 p 和 r 為變量,因此允許對 p.X、p.Y、r.A 和 r.B 賦值。但是,在以下示例中

  1. Rectangle r = new Rectangle();  
  2. r.A.X = 10;  
  3. r.A.Y = 10;  
  4. r.B.X = 100;  
  5. r.B.Y = 100; 

由于 r.A 和 r.B 不是變量,所以賦值全部無效。

C#賦值運算符之簡單賦值運算符的基本情況就向你介紹到這里,希望對你學習C#賦值運算符之簡單賦值運算符有所幫助。

【編輯推薦】

  1. C#運算符優先級介紹
  2. C#關系運算符簡介
  3. C#邏輯運算符簡介
  4. C#條件運算符簡介
  5. C#移位運算符簡介
責任編輯:仲衡 來源: 百度空間
相關推薦

2009-08-12 15:20:18

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

2009-08-11 15:51:08

C#運算符算術運算符

2025-02-24 11:16:20

2011-07-15 01:34:36

C++重載運算符

2009-09-01 10:08:57

C#運算符

2009-08-12 09:30:10

C#??運算符

2025-03-05 09:37:03

2009-08-11 14:16:38

C# New運算符

2009-08-12 13:35:22

C#關系運算符

2009-08-12 14:29:32

C#條件運算符

2009-08-12 14:49:33

C#移位運算符

2009-08-12 10:47:03

C#運算符重載

2020-10-15 08:11:56

JavaScript邏輯運算符

2009-09-04 13:18:10

C#允許運算符重載

2009-08-12 10:07:51

C#運算符

2009-08-12 10:27:12

C#運算符重載運算符重載實例

2009-08-12 10:56:47

C#運算符重載C#運算符重載實例

2009-08-14 10:16:57

C#運算符重載

2009-08-12 14:23:09

C#邏輯運算符

2009-08-11 16:03:13

C#運算符
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天色影视综合 | 欧美成人精品一区二区三区 | 午夜不卡福利视频 | 一区二区三区四区在线视频 | 凹凸日日摸日日碰夜夜 | 亚洲欧洲成人av每日更新 | 美女露尿口视频 | 精品欧美乱码久久久久久 | 天天综合网永久 | 日韩一区二区在线视频 | 久久久不卡网国产精品一区 | 青青久久久 | 羞羞色视频 | 亚洲综合色视频在线观看 | 亚洲第一av | 亚洲综合视频 | aaa综合国产| 精品亚洲永久免费精品 | 中文字幕日韩欧美一区二区三区 | 欧美中文字幕在线观看 | 成人午夜免费视频 | 精品国产欧美一区二区三区成人 | 亚洲午夜精品视频 | 欧美成人手机在线 | 国产精品久久久久久亚洲调教 | 99亚洲视频 | 免费观看av网站 | 一区二区中文 | 亚洲精久久| 国产成人精品福利 | 在线视频 中文字幕 | 中文字幕欧美在线观看 | 亚洲天堂男人的天堂 | 成人国产精品久久久 | 成av在线| 婷婷开心激情综合五月天 | 8x国产精品视频一区二区 | av毛片在线免费观看 | 91精品国产92 | 亚洲电影在线播放 | 精品网|