我是一个新的c#学习者,那个'为什么我有一些最愚蠢的问题!但我想知道我们是否已经使用过"使用System"在我们的应用程序中声明为什么我们需要使用像#34;使用System.Data"这样的语句。或图像中显示的任何其他内容。我们已经导入了主命名空间,那么为什么甚至需要为子命名空间添加使用语句?
答案 0 :(得分:4)
因为语言规范如此:
C#语言规范部分9.4.2使用命名空间指令:
using-namespace-directive导入给定命名空间中包含的类型,但特别是不导入嵌套命名空间。
这可能是因为如果导入了每个嵌套的命名空间,那么名称冲突就会太多。这降低了使用$users = User::find()->with('role')->asArray()->all();
指令的好处。
如果using
指令导入了嵌套的命名空间,我可以想到一些名称冲突:
using
和System.Drawing.Path
System.IO.Path
和System.Windows.Forms.Button
System.Web.UI.WebControls.Button
,System.Timers.Timer
和System.Threading.Timer
答案 1 :(得分:-1)
因为using
不是命名空间树的递归。
导入System
时,只会严格导入System
内的定义,而不导入System.Collections
内的定义。
这就是你需要指定它们的原因。