Свойства перечислены дважды в переменной, но не в классе

Итак, у меня есть простой класс, представляющий данные из базы данных.

public class EntitySyncContext
{
    public EntitySyncContext()
    {
        ExternalEntities = new List<ExternalContact>();
    }
    public HandledType HandledType { get; set; }
    public Contact Entity { get; set; }
    public IList<ExternalContact> ExternalEntities { get; set; }
    public bool HasConflict { get; set; }
}

Но когда я объявляю переменную из этого класса, когда я накладываю на нее часы во время отладки, я вижу, что все свойства, перечисленные выше, существуют дважды внутри переменной.

EntitySyncContext matchingContext = new EntitySyncContext();

Printscreen of properties

Кто-нибудь знает, как и/или почему это происходит и/или как его исправить?

Ответы

Ответ 1

У меня только сейчас установлен VIsual Studio 2015, поэтому поведение может быть другим, но мне нужно подумать о нескольких вещах.

Посмотрите на этот код здесь:

public interface IA
{
    string StringA { get; }
}

public interface IB
{
        string StringA { get; }
}

public class B
{
    public string StringA { get; }
}

public class A : B, IA, IB
{
    public string StringA
    {
        get
        {
            return "A";
        }
    }

    string IB.StringA
    {
        get
        {
            return "B";
        }
    }
}

Вот что выглядит просмотр экземпляра класса A в Visual Studio 2015:

Окно просмотра очень странного класса

Итак, я считаю, что у вас есть либо явно реализованные интерфейсы, которые имеют одинаковые свойства, либо вы можете скрывать свойства базового класса, объявляя свойства с тем же именем в подклассе, а Visual Studio 2013 либо не отображает детали дополнительного типа, которые есть в 2015 году, или вы настроены иначе, чем я.

Ответ 2

Вы можете восстановить или переустановить IDE. Это проблема IDE.

Ответ 3

Я бы сказал, что это ошибка.

Объявление общедоступного свойства без использования private setter подразумевает, что код, находящийся за закрытым сетевым устройством, генерируется, скорее всего, будет найден в среде IDE