【发布时间】:2012-02-22 15:16:04
【问题描述】:
我对名为 Action 的类型的名称解析有疑问。虽然该项目处于早期状态并且所有内容都在同一个项目中声明,但编译器总是更喜欢我自己的类。然而,由于有必要将项目分成不同的程序集(即 ProjectName.Common、ProjectName.Engine 等),因此 System.Action 和 ProjectName.Common.Action 之间出现了命名冲突。
我发现我可以在任何项目文件的命名空间声明中显式导入项目内部命名空间,而 System 仍被导入到最初由 IDE 创建的全局范围内。事实上,这可行,但看起来不是很优雅。有没有更好的方法来解决这个问题?重命名我的 Action 类并不是一个真正可接受的解决方案,因为它是一个非常常见的域名,而不是像 Math 等特殊的东西。
代码示例:
using System;
...
namespace ProjectName.Engine {
using ProjectName.Common;
class SomeClass {
private Action action;
...
}
}
也许有人知道这种命名冲突的秘诀......
【问题讨论】:
-
您可以将您的类型重命名为
Operation。 -
@ChaosPandion:不幸的是,这正是我无法接受的一件事(至少对我来说);-)
-
谢谢大家的回答,他们都非常有帮助。然而,虽然大多数技术问题对我来说都是相对清晰的,但我认为有时我只是在寻找“最佳美学”的解决方案。
标签: c# coding-style namespaces assemblies conflict