簡體   English   中英

為什么我可以將錯誤的接口傳遞給 function 而沒有編譯器錯誤?

[英]Why can I pass the wrong interface to a function without compiler errors?

好奇我是否弄亂了一些應該標記此問題的 Visual Studo 設置,或者我是否完全誤解了某些東西。

我有一個函數 A,它有 2 個非常基本的接口作為參數:

  1. o配置為 IConfiguration
  2. oEventLogHandler 作為 IEventLogHandler

Function B 有一個參數:

  1. oEventLogHandler 作為 IEventLogHandler

Function A 調用 Function B,將 oConfiguration 作為參數傳遞。 我似乎在 Visual Studio 中沒有收到任何編譯器錯誤或警告,但我當然會收到運行時錯誤:

無法將“ConfigurationImplementationA”類型的 object 轉換為“IEventLogHandler”類型。

打開Option Strict

它默認關閉以支持舊版 VB6 代碼。 否則,離開它只是痛苦和痛苦,所以不要。

另請參閱: Option Strict 和 Option Explicit 有什么作用?

暫無
暫無

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

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