为什么原始数据类型在不包含System命名空间的情况下工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么原始数据类型在不包含System命名空间的情况下工作相关的知识,希望对你有一定的参考价值。
这是因为int
是System.Int32
的别名,并且因为“Int32”已经以其命名空间为前缀(即“完全限定”),所以语法是合法的,而无需在代码顶部指定using System;
。
下面的MSDN片段描述了这个概念 -
大多数C#应用程序都以一段using指令开头。本节列出了应用程序将经常使用的命名空间,并保存程序员在每次使用其中包含的方法时指定完全限定的名称。例如,通过包含以下行:
using System;
在程序开始时,程序员可以使用以下代码:
Console.WriteLine("Hello, World!");
代替:
System.Console.WriteLine("Hello, World!");
System.Int32
(又名“int”)将是后者。以下是代码中的示例 -
//using System;
namespace Ns
{
public class Program
{
static void Main(string[] args)
{
System.Int32 i = 2; //OK, since we explicitly specify the System namespace
int j = 2; //alias for System.Int32, so this is OK too
Int32 k = 2; //Error, because we commented out "using System"
}
}
}
由于第11行不是完全限定类型的完全限定/别名,因此需要取消注释using System;
才能使错误消失。
其他参考 -
- C#, int or Int32? Should I care?
- Built-In Types Table (C# Reference)(列出所有内置类型,以及它们的.NET框架等价物)
正如之前提到的,int
是System.Int32
类型的别名。 C#语言隐含地知道原始类型的别名。这是清单:
object: System.Object
string: System.String
bool: System.Boolean
byte: System.Byte
sbyte: System.SByte
short: System.Int16
ushort: System.UInt16
int: System.Int32
uint: System.UInt32
long: System.Int64
ulong: System.UInt64
float: System.Single
double: System.Double
decimal: System.Decimal
char: System.Char
因此,对于这些别名(也称为简单类型),您不需要指定任何名称空间。
当你使用int时,你基本上放入System.Int32。由于这是完全限定的类型名称,因此您实际上不需要using System;
如果你这样做,你的计划将会奏效
System.Int32 num = 0;
即使没有using
以上是关于为什么原始数据类型在不包含System命名空间的情况下工作的主要内容,如果未能解决你的问题,请参考以下文章
命名空间“System.Configuration”中不存在类型或命名空间名称“ConfigurationManager”
命名空间“System.Configuration”中不存在类型或命名空间名称“ConfigurationMannger”,求帮助,谢谢