我可能会遗漏一些东西,但是我觉得这似乎是一个奇怪的错误,没有其他开发人员使用相同的代码......
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();
}
任何人都可以告诉我为什么这不会构建?
答案 0 :(得分:1)
我设法通过调用直接接受ElementId的扩展方法来修复构建错误。我不知道为什么这会解决这个问题!
public static object FindElement(this IMRepository rep, ElementId element)
{
return rep.FindElement(element.Type, element.Id);
}