奇怪的“使用可能未分配的字段'类型'” - CS0170

时间:2011-11-22 11:10:29

标签: c# c#-4.0

我可能会遗漏一些东西,但是我觉得这似乎是一个奇怪的错误,没有其他开发人员使用相同的代码......

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 个答案:

答案 0 :(得分:1)

我设法通过调用直接接受ElementId的扩展方法来修复构建错误。我不知道为什么这会解决这个问题!

public static object FindElement(this IMRepository rep, ElementId element)
{
    return rep.FindElement(element.Type, element.Id);
}