Nullable types / Null Coalescing Operator


在c#分為兩種型態

1.Value  ex:int     預設為0
2.Reference  ex:string  預設為null


但有時候Value也需要設置為null,因為在資料庫中設任何的型態,都可以為null

那如何將value type設置為null呢

答案: 在型態後加一個問號  int? i = null;

以下的areYouMajor的bool被弄成bool?型態,所以他除了true/false外,還多了一個null的可能

class Program
    {
        static void Main(string[] args)
        {
            bool? areYouMajor = null;

            if (areYouMajor == true)
            {
                Console.WriteLine("t");
            }
            else if (areYouMajor == false)
            {
                Console.WriteLine("f");
            }
            else
            {
                Console.WriteLine("NO Answer");
            }

            Console.ReadLine();

        }
    }
________________________________________________________

以上也可以用一個運算子來精簡  ??運算子 意思是說當??前面的變數為null,則取代成??後面的值,這個例子不好轉,因為是bool,所以我就把null當成false

 class Program
    {
        static void Main(string[] args)
        {
            bool? areYouMajor = null;

            bool major= areYouMajor ?? false;
            Console.WriteLine(major);

            Console.ReadLine();

        }
    }




Reference: https://www.youtube.com/watch?v=HuLJbiqpIM0



留言

這個網誌中的熱門文章

刪除大量資料造成Lock escalation鎖定升級 SQL Server

避免登出後,讀取快取返回上一頁。 How to prevent seeing previous page after logout?

SAP Connector for Microsoft .NET 3.0-------Cannot convert String into DATE/TIME