【问题标题】:Possible Conflict with Class name & Property Name?可能与类名和属性名冲突?
【发布时间】:2010-05-17 15:00:39
【问题描述】:

如果您的命名空间包含 ClassA 中的属性,并且在项目中的其他位置有一个包含该属性名称的类,并且两者都在同一个命名空间中,这不会导致冲突吗?

假设我有一个名为 Car 的类

namespace Dealer
{
   class Vehicle
   {
        // the main class that defines vehicle, so this is Dealer.Vehicle  (Vehicle.cs)
   }
}

以及其他类中的属性

namespace Dealer
{
    class Dealer
    {
        public Vehicle Vehicle
        {
           get { return _vehicle; }
        }
    }
}

所以第二次真的是这个属性

public Dealer.Vehicle Vehicle
{
     get { return _car; }
}

所以现在您有了 Dealer.Vehicle 和 Dealer.Dealer.Vehicle。想知道这会导致永远的冲突。

如果这两个类都在同一个命名空间中并且

【问题讨论】:

    标签: c# class naming-conventions namespaces


    【解决方案1】:
    namespace Dealer
    {
        class Dealer
        {
            ...
        }
    }
    

    想知道这是否会导致冲突。

    是的,这会导致问题。不要将类命名为与其命名空间相同的名称。 Eric Lippert 写了一系列关于这个的文章。

    【讨论】:

    • +1 我正要写同样的,并引用相同的位置。
    • 我不是这样做的人..只是想知道。我永远不会将一个类命名为与其名称空间相同的名称……这很愚蠢。但这是遗留代码。
    【解决方案2】:

    首先,do not name the class the same as its namespace

    其次,拥有一个与其类同名的属性可以正常工作,因为我经常这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 2019-07-13
      • 2012-12-05
      • 2011-01-16
      • 1970-01-01
      • 2014-07-01
      相关资源
      最近更新 更多