我意识到在 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/