c# 中的可空類型與空接合運算

來源:互聯網
上載者:User
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace CSharp基礎
  6. {
  7.     /// <summary>
  8.     /// 可空類型的展示
  9.     /// </summary>
  10.     class 可空類型
  11.     {
  12.         public static void Main()
  13.         {
  14.             int? a = null;
  15.             int? c = a * 5;
  16.             // c = a * 5中因為a的值是null,所以c的值一定會是null
  17.             if (c == null)
  18.             {
  19.                 Console.WriteLine( "null");
  20.             }
  21.             //值為25
  22.             a = 5;
  23.             c = a * 5;
  24.             Console.WriteLine(c);
  25.             a = null;
  26.             //在可空類型比較時,只要有一個運算元是null,則結果一定是false
  27.             if (a > c)
  28.             {
  29.                 Console.WriteLine("a>c");
  30.             }
  31.             else
  32.             {
  33.                 Console.WriteLine( "a==null");
  34.             }
  35.             //空接合運算
  36.             Console.WriteLine( "-----------------空接合運算--------------------------");
  37.             //空接合運算子作用是處理 可空類型 與 參考型別 
  38.             // ?? 符號左邊的數必須是 可空類型或者是參考型別,也就是必須是有可能==null的,實值型別當然是不可以了
  39.             // ?? 符號右連的數,必須是一個與左邊數型相同的值,或者可以隱式轉換的值.
  40.             // 如果左邊的數值不為null,則傳回值是左連數,如果為null,則返回第二個數
  41.             //b為可空類型
  42.             int? b = null;
  43.             //因為b==null則傳回值是10
  44.             int reInt = b ?? 10;
  45.             //b為可空類型
  46.             int? d = 20 ;
  47.             //因為b<>null,則返回b的值,也就是20
  48.             int reInt2 = d ?? 10;
  49.             //其實以上??運算子類似與IsNull方法的執行
  50.             int reInt3 = IsNull(b);
  51.             int reInt4 = IsNull(d);
  52.             Console.WriteLine( reInt );
  53.             Console.WriteLine( reInt2);
  54.             Console.WriteLine(reInt3);
  55.             Console.WriteLine(reInt4);
  56.             Console.WriteLine( "----------------參考型別的空接合運算示範--------------------");
  57.             Person per = null;
  58.             Person per2 = new Person();
  59.             per2.name = "aladdin";
  60.             Person rePer = per ?? per2;
  61.             Console.WriteLine( rePer.name );
  62.             Console.ReadLine();
  63.         }
  64.         public static int IsNull(int? par)
  65.         {
  66.             if (par == null)
  67.             {
  68.                 return 10;
  69.             }
  70.             else
  71.             {
  72.                 return (int)par;
  73.             }
  74.         }
  75.         class Person
  76.         {
  77.             public string name;
  78.         }
  79.     }
  80. }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.