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