c# - 使用指令导入子命名空间

标签 c# namespaces language-features using

如果我像这样导入命名空间:

using System;

为什么我不能像这样访问子命名空间 IO:

IO.FileInfo fi;

Insted 我必须写一个完整的路径:

System.IO.FileInfo fi;

或者导入整个 IO 命名空间并使用没有命名空间的类

using System.IO;

FileInfo fi;

我是不是漏掉了什么?

最佳答案

虽然根据“命名空间”和“子命名空间”来思考通常很方便,但实际上只有类型名称。

在这种情况下,只有一个类型:System.IO.FileInfo

using 指令允许编译器添加System.任何类型以查看它是否找到匹配的类型名称。但是,这不会找到 IO.FileInfo ,因为它将寻找 IO类型,包含 FileInfo嵌套类型。

语言的设计方式可能看起来更麻烦,但它消除了嵌套类型名称与 namespace 名称的混淆,因为它只在 using 指令中定义的 namespace 中查找类型。这减少了类型命名冲突的可能性。

关于c# - 使用指令导入子命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5070009/

相关文章:

c# - 使用C#以横向模式将excel文件打印为pdf

c# - 应用程序浏览器中的 iOS Facebook 的行为是否与 Safari 不同?

php - 我在命名空间之后在 Visual Studio 中打开了一个 Laravel 项目

c# - 制作一个控件以沿着集合一次滑动一个图像,Windows Phone 7

C# OpenQA 和 OperaDriver() 问题。 selenium OpenQA v2.5 没有 Opera

php - Zend Framework 1.11 与 Doctrine 2 和命名空间

xml - 在 Oracle 中更新 xml 元素值

php - 这是将 HTML 放入 PHP 的正确方法吗?

c# - c# 匿名类型代码的 VB.Net 等效代码是什么?

Python 字典详细信息