我试图理解为什么VB.NET项目中的Option Strict On强制执行不会在两个项目中引发错误BC30512而在另一个项目中会引发错误。下面是一个示例代码行,它使用配置1触发错误,但不会触发配置2或3的错误。
Dim bufferedPolygon As ESRI.ArcGIS.Geometry.IGeometry = New ESRI.ArcGIS.Geometry.Polygon
此外,如果我实例化托管类而不是coclass,则在任一配置中都不会触发错误(请参阅以下行):
Dim bufferedPolygon As ESRI.ArcGIS.Geometry.IGeometry = New ESRI.ArcGIS.Geometry.PolygonClass
不同版本的ArcMap决定了该框架的目标版本。对于其他背景,ArcObjects文档的COM到.NET类型转换是相关的: Using ArcObjects (COM-based) in .NET (ArcObjects .NET 10.4 SDK)
为什么在配置1中触发错误而不在配置2或3中触发?当使用托管类而不是coclass实例化时,为什么不在配置1中触发错误?
链接到dotnet / roslyn github存储库提交的问题。 https://github.com/dotnet/roslyn/issues/13314
由于 乳木果
答案 0 :(得分:1)
此时,正如Hans Passant在对原始帖子的评论中所建议的那样,这确实是Visual Studio 2015中Roslyn编译器的一个错误。我在dotnet / roslyn GitHub存储库中打开了一个问题,它已被标记为错误并分配给团队成员。在调查问题时,这种情况可能会发生变化。
问题的链接和其他问题排查信息为here