【问题标题】:Can I have a Class and Interface with same name in same namespace?我可以在同一个命名空间中拥有同名的类和接口吗?
【发布时间】:2016-03-20 10:03:50
【问题描述】:

我被分配到一个项目(基于 C#)上工作,我发现在同一个命名空间 [类:支付,接口:支付] 中有一个同名的类和接口。所以当我构建解决方案时,它给了我不允许的错误。

重命名其中一个会影响解决方案中的其他许多方面。其实我不知道它是如何工作的!

有什么想法吗?

谢谢,

【问题讨论】:

    标签: c# class interface


    【解决方案1】:

    在同一个命名空间下不可能有两个同名的类型(这是命名空间有用的原因之一)。

    一个好的约定是在接口名称前加上字母I,参见:IEnumerableISerializable...

    如果您必须保持相同的名称,您可以更改其中一种类型的namespace 并相应地更改using namespace 声明。

    【讨论】:

    • 请注意,如果您需要 命名空间以避免名称冲突,那么您的名称可能不好。
    • 当然,我认为没有理由使用相同的类型名称,尤其是对于类和接口。
    • 我也对命名感到困惑,但我会将接口名称更改为 IPayment。并更改所有受影响的区域。非常感谢
    【解决方案2】:

    这是对您问题的一个很好的解释。它是关于 Java 的,但我认为最佳实践可以与命名类似。

    Java Interfaces/Implementation naming convention

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-14
      • 2010-12-20
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      相关资源
      最近更新 更多