4

这可能吗?

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

}

一个可以为空的 List<> 也是一个输出参数?

4

4 回答 4

20

List<T>是引用类型(类),所以 no?是必需的。只需分配nullExClass方法体中的参数。

于 2010-02-08T11:13:30.170 回答
9

正如安东所说,你不需要使用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——您通常应该将其用作返回类型。

于 2010-02-08T11:15:15.323 回答
2

仅用于? 可为空的 ValueType。

于 2010-02-08T11:16:00.907 回答
0

作为out参数与否在这里无关紧要。但是你不能Nullable<T>用一个类来做一个;T必须是结构。否则编译器会抱怨。

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

于 2010-02-08T11:23:07.817 回答