加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:01:23 所属栏目:百科 来源:网络整理
导读:我有两个不同的命名空间,很多同名的类.我相信一些代码可以更容易理解: namespace Print.Pdl.PostScript.Operators{ public abstract class BaSEOperator : IOperator { // ... }}namespace Print.Pdl.Pcl6.Operators{ public abstract class BaSEOperator :
我有两个不同的命名空间,很多同名的类.我相信一些代码可以更容易理解:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读