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

前端之家收集整理的这篇文章主要介绍了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 PCL
Pcl.BaSEOperator.DoSomething();
// Use PostScript
PostScript.BaSEOperator.DoSomething();

谢谢,Luciano Bargmann

猜你在找的C#相关文章