Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么void和System之间有区别_C#_Void - Fatal编程技术网

C# 为什么void和System之间有区别

C# 为什么void和System之间有区别,c#,void,C#,Void,可能重复: 我注意到不允许使用typeof(System.Void)。但是typeof(void)是允许的。 使用typeof(System.String)或typeof(String)时没有区别 为什么会这样?string是classSystem.string的别名 其他别名列表 对象:System.object 字符串:System.string 布尔:系统。布尔 byte:System.byte sbyte:System.sbyte 缩写:System.Int16 ushort:Sy

可能重复:

我注意到不允许使用
typeof(System.Void)
。但是
typeof(void)
是允许的。 使用
typeof(System.String)
typeof(String)
时没有区别


为什么会这样?

string
是class
System.string的别名

其他别名列表

  • 对象:System.object
  • 字符串:System.string
  • 布尔:系统。布尔
  • byte:System.byte
  • sbyte:System.sbyte
  • 缩写:System.Int16
  • ushort:System.UInt16
  • int:System.Int32
  • uint:System.UInt32
  • long:System.Int64
  • ulong:System.UInt64
  • 浮动:系统。单个
  • 双人:系统,双人
  • 十进制:系统。十进制
  • char:System.char
多亏了。这是因为C#定义别名以保持原始C风格

NET Framework使用特定的命名约定:例如,它规定类名应以大写字母开头。因此,
String
——它不是C#原生类型,而是在
System
命名空间中定义的.NET类——实际上被称为
System.String
,或者简称
String
,如果您有
使用系统在您的文件中


C#将
string
定义为
System.string
的别名,这样代码就可以像在C和其他基于C的语言(C++,Java,…)中一样。我认为它更具可读性。同样地,
int
系统相同。Int32

void
string
不同。在C#中使用
void
的几乎所有情况下,编译器都会对其进行特殊处理,例如,在
void
-“returning”方法中不需要
return
语句,也不允许带有
void
类型“value”表达式的
return
语句
typeof(void)
是少数将
void
视为常规类型的情况之一。它是双向工作的:编译器可以假设任何不是
void
的类型都不应该得到
void
的特殊处理。允许使用其他方式拼写
void
将使C#的解释更加复杂,而且没有理由需要它。

请参阅