Нечетное «Использование возможно неназначенного поля« Тип »» - CS0170 - PullRequest
2 голосов
/ 22 ноября 2011

Я могу что-то упустить, но я получаю, как мне кажется, странную ошибку, которую никто из других разработчиков не получает с тем же кодом ...

public void SomeMethod(... symbolInfo)
{
   ElementId elementId = symbolInfo.GetElementIds().Head(true);
   if (elementId.HasValue())
   {
      // error here "Use of possibly unassigned field 'Type'"
      object element = repository.FindElement(elementId.Type, elementId.Id);
      if (element != null) { ... }
   }
}

public struct ElementId
{
   public string Id;
   public MDAPI_ElementType Type;
}

со следующим расширениемметоды:

public static bool IsEmpty(this ElementId id)
{
    return id.Type == ElementType.ElementUnknown || string.IsNullOrEmpty(id.Id);
}

public static bool HasValue(this ElementId id)
{
   return !id.IsEmpty();
}

Может кто-нибудь сказать мне, почему это не будет строить?

1 Ответ

1 голос
/ 22 ноября 2011

Мне удалось исправить ошибку сборки, вместо этого вызвав метод расширения, который напрямую принимает ElementId. Я понятия не имею, почему это решает проблему, хотя!

public static object FindElement(this IMRepository rep, ElementId element)
{
    return rep.FindElement(element.Type, element.Id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...