这可能吗?
private void Test(out List<ExampleClass>? ExClass)
{
}
一个可以为空的 List<> 也是一个输出参数?
List<T>
是引用类型(类),所以 no?
是必需的。只需分配null
给ExClass
方法体中的参数。
正如安东所说,你不需要使用Nullable<T>
- 但它当然可以是一个out
参数:
private void Test(out List<ExampleClass> foo)
您可能会将 nullableList<T>
与List<T?>
对值类型有效的 a 混淆...例如,您可以使用:
private void Test(out List<Guid?> foo)
这将是一个 out 参数,它是一个可为空的 guid 列表。
另一方面,out
在方法中使用参数通常不是很好void
——您通常应该将其用作返回类型。
仅用于?
可为空的 ValueType。
作为out
参数与否在这里无关紧要。但是你不能Nullable<T>
用一个类来做一个;T
必须是结构。否则编译器会抱怨。
除此之外,将参数名称大写(使用exClass
而不是ExClass
)被认为是不好的样式。您的程序会以同样的方式运行,但任何阅读您的代码的人都可能会被误导。