可空列表<>作为输出参数
这可能吗?
private void Test(out List<ExampleClass>? ExClass)
{
}
可为空的 List<>这也是一个输出参数?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这可能吗?
private void Test(out List<ExampleClass>? ExClass)
{
}
可为空的 List<>这也是一个输出参数?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
List
是引用类型(类),因此不需要?
。只需将null
分配给方法主体中的ExClass
参数即可。List<T>
is a reference type (class), so no?
is required. Just assignnull
toExClass
parameter in method body.正如 Anton 所说,您不需要使用
Nullable
- 但它肯定可能是一个out
参数:您可能会混淆可为 null 的
List
与List
这对于值类型有效...例如,您可以使用:这将是一个输出参数,它是一个列表可为空的指导。
另一方面,在
void
方法中使用out
参数通常不太好 - 您通常应该将其用作返回类型。As Anton said, you don't need to use
Nullable<T>
- but it could certainly be anout
parameter:It's possible you're confusing a nullable
List<T>
with aList<T?>
which would be valid for value types... for example, you could use:which would be an out parameter which is a list of nullable guids.
On the other hand, it's not generally nice to have
out
parameters invoid
methods - you should usually use it as the return type instead.仅对可为 null 的 ValueType 使用
?
。Use
?
just for nullable ValueTypes.是否是
out
参数在这里并不重要。但是你不能用类创建一个Nullable
;T
必须是一个结构体。否则编译器会抱怨。除此之外,将参数名称大写被认为是不好的风格(使用
exClass
而不是ExClass
)。你的程序会以同样的方式工作,但是任何阅读你的代码的人都可能会被误导。Being an
out
parameter or not is irrelevant here. But you cannot make aNullable<T>
with a class;T
must be a struct. Otherwise the compiler will complain.In addition to this, it is considered bad style to capitalise the name of a parameter (use
exClass
instead ofExClass
). Your programs will work the same, but anybody reading your code might be misled.