我有兩個函數僅在第二個參數上有所不同。 例子:在將空值傳遞給C中的函數時消除了模糊性#
public IEnumerable<Thing> Get(string clause, List<Things> list)
{
}
public IEnumerable<Thing> Get(string clause, List<OtherThing> list)
{
}
我想調用這個函數的第一個實例,但我想傳遞null作爲第二個參數。有沒有辦法指定null的「類型」?
我有兩個函數僅在第二個參數上有所不同。 例子:在將空值傳遞給C中的函數時消除了模糊性#
public IEnumerable<Thing> Get(string clause, List<Things> list)
{
}
public IEnumerable<Thing> Get(string clause, List<OtherThing> list)
{
}
我想調用這個函數的第一個實例,但我想傳遞null作爲第二個參數。有沒有辦法指定null的「類型」?
角色null文本:
Get("", (List<Things>)null)
存儲它在一個變量第一:
List<Things> list = null;
Get("", list);
使用反射。 (我不打算舉一個例子,因爲它不必要的複雜。)
我曾想過第二種解決方案,但我不喜歡它的樣子。我認爲第一個實際上會拋出一個異常,但你是正確的,它不會。謝謝。 – bpeikes
在這種情況下,一個可選參數將是有用的。重寫如此
public IEnumerable<Thing> Get(string clause, List<Things> list = null)
{
if(list==null){}
else{}
}
當'null'作爲第二個參數傳遞時,這與調用這兩個方法時的不明確性無關。 – Servy
FWIW:我可能會改變設計總是要求/接受一個colleciton,即使是空的。 – user2864740