可空列表<>作为out参数

时间:2010-02-08 11:11:56

标签: c# list nullable out

这可能吗?

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

}

可空列表&lt;&gt;那也是一个out参数?

4 个答案:

答案 0 :(得分:20)

List<T>是引用类型(类),因此不需要?。只需在方法正文中为null参数指定。{/ p>

答案 1 :(得分:9)

正如Anton所说,你不需要使用Nullable<T> - 但它肯定是一个out参数:

private void Test(out List<ExampleClass> foo)

您可能会将可为空的List<T>List<T?>混淆,这对于值类型有效...例如,您可以使用:

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

这将是一个out参数,它是可以为空的guid列表。

另一方面,在out方法中使用void参数通常不太好 - 您通常应该将其用作返回类型。

答案 2 :(得分:2)

仅将?用于可为空的ValueTypes。

答案 3 :(得分:0)

成为out参数与此无关。但你不能用班级Nullable<T>; T必须是结构。否则编译器会抱怨。

除此之外,大写参数名称被认为是不好的风格(使用exClass而不是ExClass)。您的程序将运行相同,但任何阅读您的代码的人都可能被误导。