void子程序返回什么?
我只是在对复星进行评估,并给出了以下问题。
“void子程序返回什么?”
我的印象是void子程序没有返回任何内容,但这不是提供的答案之一(多项选择题)。
.Net是在后台返回值类型还是这个问题不正确?
我给出的选择是:整数布尔字符串日期时间
System.Void
不是什么都没有 ,它是一个struct
因此是一个值类型。
但是, Sub
(VB.NET)或“返回” void
(C#)的方法并不真正返回值。 所以你不能写这样的东西:
System.Void nothing = Foo(); // Foo is a void-method
这不编译(“ System.Void
不能用于C# – 使用typeof(void)来获取void类型对象”)。 相关: 为什么不System.Void?
正如Jeroen和其他人所提到的,实际上一个void
方法确实没有返回任何东西,所以正确的答案是:“它什么都不返回”。
MSDN提到它只在reflection中有用:
“Void结构在System.Reflection命名空间中使用,但在典型的应用程序中很少使用.Void结构除了从Object类inheritance的所有类型之外没有其他成员。”
如果查看void
-keyword上的工具提示,您会看到它映射到System.Void
。 但同样,这并不意味着它是从方法返回的。 它只是一个不存在的返回值的占位符。 我猜这个void
也是由于历史原因而存在,因为C#是基于C.
另外值得一读: 为什么C中的void意味着无效?
一种方法,其返回类型为void
,它不返回任何内容。 您可以在方法体内执行任何您想要的语句。 此外,这些语句可能会影响您想要的任何内容,但在一天结束时,您的方法将不会返回任何内容。