C# · 12月 26, 2021

c# – 不同命名空间中相同的类名

我有两个不同的命名空间,很多同名的类.我相信一些代码可以更容易理解: namespace Print.Pdl.PostScript.Operators{ public abstract class BaSEOperator : IOperator { // … }}namespace Print.Pdl.Pcl6.Operators{ public abstract class BaSEOperator : IOperator { // … }}

基本的实现是相同的,因为PostScript和PCL有类似的结构.所以,这两个命名空间最终都有与几个类相同的名称.

我很想做以下事情:

namespace Print.Pdl.PostScript.Operators{ public abstract class BasePsOperator : IPsOperator { // … }}namespace Print.Pdl.Pcl6.Operators{ public abstract class BasePclOperator : IPclOperator { // … }}

…但是,IMHO,这样做是为了打败目的,因为识别中存在冗余.为什么要前缀/更改类名,如果命名空间已经创建了逻辑障碍?

那么,你们有什么想法?我应该保留相同的名称,因为它们在不同的命名空间中,还是应该前缀/更改类名,以便更容易识别源代码,如果有人想要同时使用这两个命名空间,可以避免冲突?

谢谢!

解决方法 诺尔德,

我不认为你应该牺牲建筑以支持可读性.如果您保持相同的类名称,我相信它更直观,因为如果您从PCL切换到PostScript,反之亦然.

如果必须在同一个代码文件中使用这两个类,则为命名空间创建一个别名.很清楚阅读:

using Pcl = Print.Pdl.Pcl6.Operators;using PostScript = Print.Pdl.PostScript.Operators;…// use PCLPcl.BaSEOperator.DoSomething();// Use PostScriptPostScript.BaSEOperator.DoSomething();

谢谢,Luciano Bargmann