1. 程式人生 > >c# 3.0 get set 預設值

c# 3.0 get set 預設值

.NET Framework 3.5 使用的是 C# 3.0,C# 3.0 有一些新的語言特性,其中有一項就是快捷屬性。

之前的寫法:

private int _id = 0; 
public int Id 

get 

return _id; 

set 

_id = value; 

}

在 C# 3.0 中可以簡寫為這樣:

public int Id { get; set; }

C# 3.0 { get; set; } 預設值

這就不得不說 { get; set; } 的預設值了,因為不存在了私有自段,我們無法人工指定預設值了,那麼系統的預設值是什麼呢?

  • 對於 int 型別,預設值是 0;
  • 對於 int? 型別,預設值是 null;
  • 對於 bool 型別,預設值是 false;
  • 對於 bool? 型別,預設值是 null;
  • 對於 string 型別,預設值是 null;
  • 對於 string? 型別,哈哈,沒有這種寫法,會出錯;
  • 對於 DateTime 型別,預設值是 0001-01-01 00:00:00;
  • 對於 DateTime? 型別,預設值是 null;
  • 對於 enum 型別,預設值是值為 0 的項,如果不存在 0 的 enum 項,它仍然是 0,相關內容可參見:C# 列舉(enum)
  • 對於 enum? 型別,預設值是 null;
  • 對於 class 型別,預設值是未例項化的物件引用;
  • 對於 class? 型別,哈哈,沒有這種寫法,會出錯。

關於型別加 ?,表示這種型別的值可為 null,比如 int 本來沒有 null 值,加上 int? 就可以為 null 了。

        public string test {
             get
             {
                 if (test == null)
                 {
                     return "預設值";
                 }
                 else
                 {
                     return test;
                 }
             }
             set { test = value; }
         }

出處:https://blog.csdn.net/scauscnu/article/details/13621137