我在尋找一個功能:傳遞 「?新的INT()」 作爲參數
public void foo(int? id) {
...
}
叫這樣的:
foo(new int?());
這到底是怎麼回事?什麼是當它傳遞新INT ID裏面的函數的值?()?它不會出現是任何東西 - 該函數將它用於SQL存儲過程,爲此,我可以在跟蹤中看到它正在作爲空值傳遞。我期待這個存儲過程被調用一個明確的,實際的整數,我想知道爲什麼這個代碼可能沒有指定一個,除非有什麼我不瞭解這個。
我在尋找一個功能:傳遞 「?新的INT()」 作爲參數
public void foo(int? id) {
...
}
叫這樣的:
foo(new int?());
這到底是怎麼回事?什麼是當它傳遞新INT ID裏面的函數的值?()?它不會出現是任何東西 - 該函數將它用於SQL存儲過程,爲此,我可以在跟蹤中看到它正在作爲空值傳遞。我期待這個存儲過程被調用一個明確的,實際的整數,我想知道爲什麼這個代碼可能沒有指定一個,除非有什麼我不瞭解這個。
快捷方式/語法糖當它傳遞新的INT的功能是什麼裏面的id的值()?
new int?()
是類型爲nullable int的無參數構造函數的調用。如果您沒有傳入任何值,它將具有默認值null
。有可以採取的int
號作爲參數,並對其進行初始化new int?(23)
如果你想看到的構造函數中詳細介紹瞭如何工作,看看在source code
int?
是簡寫Nullable<int>
,所以這樣的:
new int?()
實際上是通過null
。
因爲對於任何Nullable<T>
類型的默認值是null
。
參見:What is the default value of the nullable type "int?" (including question mark)?
int?
是Nullable<int>
'INT第二構造?'是*空整型*。你基本上將'null'傳遞給你的函數,並想知道爲什麼它不是一個數字。如果你想傳遞一個數字,爲什麼不是? – Amy
程序對該值做了什麼?將它插入表中? –
@Amy嗯,我說「可能」 - 我基於「我在看一個函數」這個提示和整個問題的措辭做出假設。但我承認,但我可能是錯的。 – Fildor