簡短回答:沒有辦法阻止這種情況
也許這個問題是重復的,但我沒有找到任何解決方案,因為我不知道我應該搜索什么詞:
Option Strict On
Option Explicit On
Public Class Fruit
'... stuff
End Class
Public Class Apple
Inherits Fruit
'... stuff
End Class
Public Class FruitCart
Private _fruits As New List(Of Fruit)
Public Function GetFirstApple() As Apple
Return Me._fruits(0) '... <-- Option Strict error
End Function
Public Function GetApples() As List(Of Apple)
Dim result As New List(Of Apple)
For Each A As Apple In Me._fruits '... Why no error?
result.Add(A)
Next
Return result
End Function
End Class
GetFirstApple() 方法給了我一個編譯錯誤。這是我想要的行為。GetApples() 方法不會給我一個編譯錯誤,導致運行時錯誤。
為什么編譯器允許對 For Each 進行強制轉換,即使使用 Option Strict On?我希望編譯器在 GetApples() 方法上給我一個編譯錯誤。
uj5u.com熱心網友回復:
我剛發現。沒有辦法阻止這種情況,如 For Each 頁面上的“Narrowing conversions”中所述:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/330022.html
標籤:网络
上一篇:VB.NET如何在visualstudio中制作滑入/滑出申請表(程式)?
下一篇:安卓系統從郵件中的深度鏈接
