Wendelius
Предупреждение довольно информативно, у вас есть свойство и функция, которые оба используют одно и то же имя и поэтому вызывают двусмысленность. Рассмотрим следующий пример, который вызывает такое же предупреждение
Public Class BaseClass
Public Property SomeFunctionality As String
Get
Return ""
End Get
Set(value As String)
End Set
End Property
End Class
Public Class InheritedClass
Inherits BaseClass
Public Function SomeFunctionality() As String
'This function uses the same name as the underlying property
End Function
End Class
Один из способов удалить предупреждение - определить тени (которые в данном случае автоматически определяются для вас). Например
Public Class InheritedClass
Inherits BaseClass
Public Shadows Function SomeFunctionality() As String
End Function
End Class
Но, на мой взгляд, правильным решением было бы использовать разные имена. Если вы определяете ключевое слово Shadows, вы намеренно скрываете функциональность, и это, вероятно, не то, что вы хотите в конце концов.
Таким образом, фиксированный код должен выглядеть следующим образом
Public Class BaseClass
Public Property SomeFunctionality As String
Get
Return ""
End Get
Set(value As String)
End Set
End Property
End Class
Public Class InheritedClass
Inherits BaseClass
Public Function AnotherFunctionality() As String
' Now the name is different so no ambiguity in calling anymore
End Function
End Class
Для получения дополнительной информации взгляните на
-
Свойство по умолчанию '& lt;propertyname1> 'конфликтует со свойством по умолчанию' & lt;propertyname2> ' В '& lt;classname> 'и поэтому должно быть объявлено 'Shadows'[
^]
-
Тени (Visual Basic)[
^]