提问人:Adjit 提问时间:12/13/2022 更新时间:12/13/2022 访问量:71
命名空间和其中的“System”一起使用
Namespace and Using with 'System' in it
问:
我有一个图书馆 -Foo.System.Management
我有一个申请 -Foo.New.Application
在此应用程序中,被导入,最终发生的事情是这正在被解析并导致我的项目抛出错误的说法Using System;
Foo.System
命名空间中不存在类型或命名空间
Diagnostics
Foo.System
我的假设是,由于相同的 Base 命名空间,它导致了该分辨率。浏览命名空间文档,我真的找不到对此的明确解释。Foo
- 我有哪些选择?
Foo.New.Application
- 其中一些指令是生成的代码,因此我无法控制别名。我应该重命名库吗?
Using System;
- 出于这个原因创建命名空间是不好的做法吗?
Foo.System
答:
1赞
Nora Söderlund
12/13/2022
#1
引用设计指南:
❌ 不要引入泛型类型名称,例如 Element、Node、Log 和 消息。
这样做很有可能会导致类型名称 常见方案中的冲突。应限定泛型类型 名称(FormElement、XmlNode、EventLog、SoapMessage)。
核心命名空间包括所有系统命名空间,不包括应用程序模型的命名空间和基础结构命名空间。核心命名空间包括 System、System.IO、System.Xml 和 System.Net 等。
❌ 不要提供会与 核心命名空间。
例如,切勿使用 Stream 作为类型名称。它会与 System.IO.Stream,一种非常常用的类型。
https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-namespaces
所以,是的,你应该为你的库找到一个更合适的名称,它遵循命名空间名称的设计准则,并且将其用作命名空间名称的一部分确实是一种不好的做法。System
评论
System
using
using Management = Foo.System.Management;
System
System
using System;
using global::System;
using System;
File.g.cs