c# - 为什么 Void 是一个结构?

标签 c# .net

我意识到在 Microsoft .NET Framework 中,void 返回类型是一个结构。为什么?

...
public void TestMethod()
{

}
...

最佳答案

框架使用a value type called System.Void表示用于反射的 void 返回类型关键字。虽然 void 意味着缺少返回值,但它在技术上仍然是一种类型,为了在代码中这样表达它,它必须是结构(值类型)或类(引用类型)。

参见 MethodInfo.ReturnType举个例子。

至于为什么框架设计者选择将 System.Void 做成一个结构而不是一个类,这是任何人的猜测,但它必须首先由一个类型来表示。我同意这样的评论,即避免通常与引用查找相关的不必要的开销,以及其他优化。

关于c# - 为什么 Void 是一个结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11498677/

相关文章:

c# - 在 await 语句之后使用 Task.Result 有什么影响吗?

c# - 多个 AppSettings 文件,可能吗?

c# - 是否可能在一个方法中返回多个返回类型?

c# - iTextSharp 中多行文本表单字段的对齐问题

c# - 如何使用 visual 2013 处理 telegrambot 中的这个错误?

c# - 连接到 OData 服务时通过代码附加客户端证书

.net - Major.minor.build.revision 版本控制风格 vs year.month.day.whatever 版本控制风格

java - 如何使用 Java 客户端在 WCF 中创建的 SOAP 1.2 Web 服务?

c# - OutputCache 行为异常

c# - 如何使用 OleDbDataAdapter 从 Excel 文件中的任何电子表格中进行选择