Поделиться через


Типы данных параметров-типов в методе расширения ''<имя_метода>'', определенном в "typename", не могут быть определены из этих аргументов, так как они не могут быть приведены к одному типу

Обновлен: Ноябрь 2007

Сообщение об ошибке

Типы данных параметров-типов в методе расширения "<имя_метода>", определенном в "typename", не могут быть определены из этих аргументов, так как они не могут быть приведены к одному типу. Явное указание типов данных может исправить эту ошибку.
Data type(s) of the type parameter(s) in extension method '<methodname>' defined in 'typename' cannot be inferred from these arguments because they do not convert to the same type. Specifying the data type(s) explicitly might correct this error.

Предпринята попытка использования определения типов для определения типа (или типов) данных параметра (или параметров) типа во время определения вызова для создания метода расширения. Компилятору не удалось найти тип данных, соответствующий ограничениям, налагаемым всеми аргументами. Поэтому появилось сообщение об ошибке.

Bb531241.alert_note(ru-ru,VS.90).gifПримечание.

Когда аргументы являются обязательными (например, в операторах выражений запросов), это сообщение об ошибке отображается без второго предложения.

Данная ошибка показана в следующем коде:

Option Strict Off
Module Module3
    Sub Main()

        Dim c1 As New Class1

        '' Not valid. Integer and Date do not convert to the same type.
        'c1.targetMethod(19, #3/4/2007#)

    End Sub

    <System.Runtime.CompilerServices.Extension()> _
    Sub targetMethod(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
    End Sub

    Class Class1
    End Class

End Module

Идентификатор ошибки: BC36661 и BC36658

Исправление этой ошибки

  • Попробуйте явно преобразовать один или несколько аргументов в совместимый тип, как показано в следующем коде:

    c1.targetMethod(19, #3/4/2007#.ToOADate)
    
  • Попробуйте указать тип данных для параметра или параметров типа, в который преобразуются аргументы, как показано в следующем коде:

    c1.targetMethod(Of String)(19, #3/4/2007#)
    

См. также

Основные понятия

Методы расширения (Visual Basic)

Ослабленное преобразование делегата

Универсальные процедуры в Visual Basic

Явные и неявные преобразования

Ссылки

Функции преобразования типов

Другие ресурсы

Преобразование типов в Visual Basic