2014-12-05 73 views
1

为什么会出现在这个例子中,没有错误,我如何使视觉工作室提醒我要禁止这种做法:Vb.net继承的类

例如: 这里有两个对象:

Class Person 
Property name As String 
End Class 

Class Long_Term_Person 
Inherits Person 
Property address As String 
End Class 

这里是测试代码:

Class TestClass 

Sub test1() 
    Dim LTP As New Long_Term_Person 
    Get_Address(LTP) 
End Sub 

Sub test2() 
    Dim P As New Person 
    Get_Address(P) 
End Sub 

Function Get_Address(LTP As Long_Term_Person) As String 
    Return LTP.address 
End Function 
End Class 

为什么Test2不会失败,当函数需要一个具有地址属性的Long_term_person时,有没有办法让视觉研究来标记这个?

+3

当然,请打开'Option Strict On'。 (这也是一个项目范围内的设置,您应该将其设置为默认设置;这是根据偏好设置的,但我不知道确切位置) – Ryan 2014-12-05 06:10:39

+0

@minitech,让这个完整答案? – 2014-12-05 07:12:04

回答

1

无效的隐式转换通常在编译时标记。例如,如果用一个整数变量替换Get_Address(P)中的P,则会生成编译时错误。

这不是继承类的情况。对这些隐式转换无效将产生运行时错误,而不会产生编译错误,UNLESS vb.net被配置为对所有隐式转换生成警告或错误。您可以在Project,Properties,Compile中为整个项目执行此操作。您可以选择Option Strict on,也可以指定隐式转换的操作。

您还可以在源文件的开头添加Option Strict On,因此该选项仅适用于该文件。