Member 12794883 Ответов: 1

В чем может быть проблема?


Функция предупреждения конфликтов "Марка" frm_orderform_A155751 с марка свойства В управления базового класса и должен быть объявлен 'тени'.

Что я уже пробовал:

Private Function productname() As String
        Dim lastid As String = run_sql_query("SELECT MAX(FLD_PRODUCT_NAME) AS LASTID FROM TBL_PRODUCT_A155751").Rows(0).Item("LASTID")

        Dim newid As String = Mid(lastid, 2) + 1

        Return newid
    End Function

1 Ответов

Рейтинг:
2

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)[^]