我似乎找不到其他人遇到同样的问题。我已经看到您可以在VB.NET中使用空条件运算符。例如
SendNews?.Invoke("Just in: A newsworthy item...")
但是,我收到“该邀请不是SendNews的成员”
我尝试设置“ Option Infer On”,但仍然收到此错误。
有什么想法吗? (使用.net 4.6.1)
答案 0 :(得分:-1)
使用空条件运算符代替空检查。例如,代替此:
If SendNews IsNot Nothing Then
SendNews.Invoke("...")
End If
您可以将其缩短为:
SendNews?.Invoke("...")
但是,这就是所有。它不检查对象是否实际包含正在访问的成员。如果您使用后期绑定(Dim SendNews As Object
与Option Strict Off
,相当于在C#中使用dynamic
),则空条件运算符将在方法调用不存在的情况下不跳过物体。它仍将引发与其他情况相同的异常。当前,检查绑定对象是否包含特定方法的唯一方法是捕获并忽略该异常,或者通过反射按字符串名称查找该异常。