这可能吗?
private void Test(out List<ExampleClass>? ExClass)
{
}
可空列表&lt;&gt;那也是一个out参数?
答案 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
)。您的程序将运行相同,但任何阅读您的代码的人都可能被误导。