2010-02-08 43 views
4

這可能嗎?Nullable List <>作爲輸出參數

private void Test(out List<ExampleClass>? ExClass) 
{ 

} 

可空列表<>這也是out參數?

+0

由於您已經編寫了代碼,爲什麼不自己嘗試呢? – stakx 2011-08-28 12:15:00

回答

20

List<T>是一個參考類型(類),所以沒有?是必需的。只需在方法體中分配nullExClass參數。

+0

另一種方法是在列表或空列表中包含0(零)個元素。 – Sharique 2011-10-31 11:38:34

9

安東說,你並不需要使用Nullable<T> - 但它肯定會是一個out參數:

private void Test(out List<ExampleClass> foo) 

有可能你混淆一個可空List<T>List<T?>這將是有效的值類型...例如,您可以使用:

private void Test(out List<Guid?> foo) 

這將是一個out參數,它是一個可爲空的guid列表。

另一方面,在void方法中通常不需要out參數 - 您通常應該將其用作返回類型。

+0

感謝喬恩。所示的方法只是一個例子,並感謝您提供解釋。 – Trent 2010-02-08 11:17:10

2

使用?僅用於可爲空的ValueTypes。

0

作爲out參數與否與此無關。但是你不能在課堂上做一個Nullable<T>; T必須是一個結構。否則編譯器會抱怨。

除此之外,大寫參數名稱(使用exClass而不是ExClass)被認爲是不好的樣式。你的程序工作原理是一樣的,但任何讀你代碼的人都可能被誤導。

相關問題