C#中兩個問號(a ?? b)是咩啊?有喵用?

來源:互聯網
上載者:User

C#中兩個問號的作用是判斷??左邊的對象是否為null,如果不為null則使用??左邊的對象,如果為null則使用??右邊的對象。

比如:a = b ?? c,如果b為null,則a = c,如果b不為null,則a = b。

下面一段代碼示範了這兩種情況:

01 static void Main(string[] args)
02 {
03     NewFuck();
04     Shit();
05     Console.ReadKey();
06 }
07  
08 private static void NewFuck()
09 {
10     string fuck = "Fuck";
11     Console.WriteLine(fuck ?? "fuck not found.");
12 }
13  
14 private static void Shit()
15 {
16     object shit = null;
17     string b = (string)shit ?? "shit not found.";
18     Console.WriteLine(b);
19 }

執行結果如真相:

很明顯,這種類似三目運算式的運算子可以用來在妹子面前裝B,看個直觀的例子:

01 //文藝Fuck
02 private static void NewFuck()
03 {
04     string fuck = "Fuck";
05     Console.WriteLine(fuck ?? "fuck not found.");
06 }
07  
08 //普通Fuck
09 private static void Fuck()
10 {
11     string fuck = "Fuck";
12     string s = fuck != null ? fuck : "fuck not found.";
13     Console.WriteLine(s);
14 }    
15  
16 //2BFuck
17 private static void SBFuck()
18 {
19     string fuck;
20     fuck = "Fuck";
21     string s;
22     if (fuck != null)
23     {
24         s = fuck;
25     }
26     else
27     {
28         s = "fuck not found.";
29     }
30     Console.WriteLine(s);
31 }

這三個方法在結果上是相同的,都會在螢幕上輸出Fuck。當然,寫個例子只是Demo層級的,我們在實際編程的時候用??運算子往往更有用,可以省去很多麻煩。比如處理頁面QueryString的時候:

01 // 原先要這樣處理參數:
02 string tmd = String.Empty;
03 if (Request["Select"] != null)
04 {
05     tmd = Request["Select"];
06 }
07 else
08 {
09     tmd = "All";
10 }
11  
12 // 現在重構為:
13 string tmd1 = Request["Select"] ?? "All";

怎麼樣?有沒有覺得屌爆了。Session什麼的也可以這麼處理。順便提一句,實際項目中處理參數比這個要複雜。往往包括類型轉換等操作。類型轉換建議用as操作符,強轉不好。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.