簡體   English   中英

“Option Strict On禁止隱式轉換”執行不一致

[英]“Option Strict On disallows implicit conversions” inconsistent enforcement

  • 配置1:使用面向.NET 4.5.2框架的Visual Studio 2015為ArcMap 10.4構建ESRI加載項
  • 配置2:使用面向.NET 3.5框架的Visual Studio 2013為ArcMap 10.3構建ESRI加載項
  • 配置3:使用面向.NET 4.5.2框架的Visual Studio 2013為ArcMap 10.4構建ESRI加載項

我試圖理解為什么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類型轉換是相關的: 在.NET中使用ArcObjects(基於COM)(ArcObjects .NET 10.4 SDK)

為什么在配置1中觸發錯誤而在配置2或3中沒有觸發? 為什么在使用托管類而不是coclass實例化時,配置1中是否觸發了錯誤?

鏈接到dotnet / roslyn github存儲庫提交的問題。 https://github.com/dotnet/roslyn/issues/13314

謝謝謝

此時,它似乎(正如Hans Passant在原帖中的評論中所建議的)這確實是Visual Studio 2015中Roslyn編譯器的一個錯誤。我在dotnet / roslyn GitHub存儲庫中打開了一個問題,它已經被標記了一個錯誤並分配給了一個團隊成員。 在調查問題時,這種情況可能會發生變化。

問題的鏈接和其他疑難解答信息是https://github.com/dotnet/roslyn/issues/13314

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM