可空列表<>作为输出参数

发布于 2024-08-21 04:53:14 字数 136 浏览 10 评论 0 原文

这可能吗?

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

}

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

Is this possible?

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

}

A nullable List<> that is also an out parameter?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

初雪 2024-08-28 04:53:14

List 是引用类型(类),因此不需要 ?。只需将 null 分配给方法主体中的 ExClass 参数即可。

List<T> is a reference type (class), so no ? is required. Just assign null to ExClass parameter in method body.

苏辞 2024-08-28 04:53:14

正如 Anton 所说,您不需要使用 Nullable - 但它肯定可能是一个 out 参数:

private void Test(out List<ExampleClass> foo)

您可能会混淆可为 null 的 ListList 这对于值类型有效...例如,您可以使用:

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

这将是一个输出参数,它是一个列表可为空的指导。

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

As Anton said, you don't need to use Nullable<T> - but it could certainly be an out parameter:

private void Test(out List<ExampleClass> foo)

It's possible you're confusing a nullable List<T> with a List<T?> which would be valid for value types... for example, you could use:

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

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 in void methods - you should usually use it as the return type instead.

酒解孤独 2024-08-28 04:53:14

仅对可为 null 的 ValueType 使用 ?

Use ? just for nullable ValueTypes.

断舍离 2024-08-28 04:53:14

是否是 out 参数在这里并不重要。但是你不能用类创建一个 NullableT 必须是一个结构体。否则编译器会抱怨。

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

Being an out parameter or not is irrelevant here. But you cannot make a Nullable<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 of ExClass). Your programs will work the same, but anybody reading your code might be misled.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文