繁体   English   中英

在C#中声明“限定在该命名空间中使用类型”的含义是什么意思

[英]What does the statement “to qualify the use of a type in that namespace” mean in C#

我是C#的初学者,在使用Console.WriteLine函数时遇到了以下错误。

The name 'Console' does not exist in the current context

我对using关键字的理解是它在JavaScript中的行为类似于requireimport

所以我随后using System;添加了语句using System; 在命名空间文件的顶部,因为IDE的建议给了我类似System.Console东西。 现在我不再有错误了。

出于好奇,我去了使用指令部分的C#文档。 并且有以下状态:

using指令有三个用途:

允许在命名空间中使用类型,以便您不必限定在该命名空间中使用类型:

该部分是什么 - 这样您就不必限定在该命名空间中使用类型:意思是。

为什么using关键字被称为指令或一般编程中的指令是什么,与我在Angular中使用的指令相比?

谢谢。

该部分是什么 - 这样您就不必限定在该命名空间中使用类型:意思是。

C#区分具有名称和可选类型参数的简单名称 ,如StringList<int> ,以及具有多个以点分隔的名称的限定名称 ,如System.StringSystem.Collections.Generic.List<int>

如果您有using指令,则可以忽略使用的限定符。

为什么using关键字被称为指令或什么是一般编程中的指令

在C#中,我们有声明,namespace Fooclass Barvoid M() {}我们有语句 ,如foreach(var foo in bar) blah(); 然后using System; 这不是宣言; 没有声明新项目。 它不是声明 - 语句是控制流元素,但using指令不引入控制流。 指示编译器具有解析名称的特定规则,因此它是一个指令

所有这些信息都在C#规范中。 我强烈建议您自己获取规范的副本,并在遇到类似问题时咨询 这比在这里发布问题更快更容易。

该部分是什么 - 这样您就不必限定在该命名空间中使用类型 :是什么意思?

System命名空间中有一个静态类Math 你可以像这样引用它的静态方法Min而不using任何:

var z = System.Math.Min( x, y );

或者你可以摆脱System. 通过using System命名空间:

using System;
[...]
var z = Math.Min( x, y );

或者你甚至可以摆脱Math. (自C#6):

using static System.Math;
[...]
var z = Min( x, y );

第三个选项基本上允许您将静态类视为名称空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM