在.NET中,“Void”结构有什么实际用途吗?

14

仅出于好奇,"Void" struct 有没有除了反射之外的实际用途?

除了反射之外,还有其他实际应用吗?


如果我们可以在不需要/相关的情况下将其用作类型参数,那将是很酷的。例如:public class SomeServiceWithoutResponse : BaseService<MyRequestType, Void> - rsenna
3个回答

8

System.Void是等同于void关键字的。查看void的工具提示,它会显示:

struct System.Void

但在C#中无法直接使用,所以最好忽略它。

尝试使用System.Void将生成编译错误:

error CS0673: 无法从C#使用System.Void--使用typeof(void)获取void类型对象

因此,它只能用于反射相关的主题。


3
我认为,但不确定,这个结构体被编译器用来为返回类型为空的函数生成il。

没错,System.Void可以直接在C++/CLI语言中使用。 - Hans Passant

2

文档中说:

Void 结构体在 System.Reflection 命名空间中使用,但在典型应用程序中很少有用。Void 结构体除了从 Object 类继承的成员之外,没有其他成员。

所以我表示怀疑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接