[問題] 請教"?"的意義

看板C_Sharp作者 (dabid')時間8年前 (2016/05/31 15:26), 編輯推噓3(303)
留言6則, 5人參與, 最新討論串1/1
無意中看到有這種宣告 int? a = null ; 之後可以使用 a.HasValue(); 去判斷a是否為null,但我不是很了解int?宣告的意義 如果我要用Optional Parameters使用string好像又不行 ex private void OP(string? OP1 = null)//這樣不會過 { if(OP1.HasValue) { ....... } } 所以想請教眾高手們這個"?"的含意與用法 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.51.121 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1464679595.A.4B3.html

05/31 15:38, , 1F
Nullable
05/31 15:38, 1F

05/31 16:28, , 2F
int? 其實是 Nullable<Int32>,要value type才有
05/31 16:28, 2F

05/31 16:28, , 3F
string是reference type本來就可為null
05/31 16:28, 3F

05/31 16:58, , 4F
沒這樣宣告的話預設值是0
05/31 16:58, 4F

05/31 19:40, , 5F
我會配合資料庫欄位設定,來決定是否用Nullable
05/31 19:40, 5F

06/01 10:02, , 6F
感謝各位專家,小弟研究一下Nullable
06/01 10:02, 6F
文章代碼(AID): #1NJJohIp (C_Sharp)