Sim*_*all 0 .net c# subroutine
我只是在对复数视力进行评估,并给出了以下问题.
"void子程序返回什么?"
我的印象是void子程序没有返回任何内容,但这不是提供的答案之一(多项选择题).
.Net是在后台返回值类型还是这个问题不正确?
我给出的选择是:整数布尔字符串日期时间
System.Void并非一无是处,因此它是struct一种价值类型.
但是,Sub(VB.NET)或"返回" void(C#)的方法并不真正返回值.所以你不能写这样的东西:
System.Void nothing = Foo(); // Foo is a void-method
Run Code Online (Sandbox Code Playgroud)
这不编译(" System.Void不能从C#中使用 - 使用typeof(void)来获取void类型对象").相关:为什么不System.Void?
正如Jeroen和其他人所提到的,实际上一个void方法确实没有返回任何东西,所以正确答案是:"它什么都不返回".
MSDN提到它只在反射中有用:
"Void结构在System.Reflection命名空间中使用,但在典型的应用程序中很少有用.Void结构除了从Object类继承的所有类型之外没有其他成员."
如果你查看void-keyword 上的工具提示,你会看到它映射到System.Void.但同样,这并不意味着它是从方法返回的.它只是一个不存在的返回值的占位符.我想这void也是由于历史原因而存在,因为C#是基于C.
另外值得一读:为什么C中的void意味着无效?
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |