Возможен конфликт с именем класса и именем свойства? - PullRequest
1 голос
/ 17 мая 2010

Если у вас есть пространство имен, которое содержит свойство в 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. Удивление этого может привести к конфликту.

Если оба этих класса находятся в одном пространстве имен и

Ответы [ 2 ]

4 голосов
/ 17 мая 2010
namespace Dealer
{
    class Dealer
    {
        ...
    }
}

Интересно, не вызовет ли это когда-нибудь конфликт?

Да, это вызовет проблемы. Не называйте класс так же, как его пространство имен. Эрик Липперт написал серию статей об этом.

0 голосов
/ 17 мая 2010

Прежде всего, не называйте класс так же, как его пространство имен .

Во-вторых, свойство того же имени, что и его класс, будет работать нормально, как я часто это делал.

...