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


Тип(ы) данных параметра или параметров метода расширения <имяМетода>, определенного в типе <имяТипа>, невозможно вывести из этих аргументов

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

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

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

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

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

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

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

Module Module1

    Sub Main()

        Dim classInstance As ClassExample

        '' Not valid.
        'classInstance.GenericExtensionMethod("Hello", "World")

    End Sub

    <System.Runtime.CompilerServices.Extension()> _
    Sub GenericExtensionMethod(Of T)(ByVal classEx As ClassExample, _
                                     ByVal x As String, ByVal y As _
                                     InterfaceExample(Of T))
    End Sub

End Module

Interface InterfaceExample(Of T)
End Interface

Class ClassExample
End Class

Идентификатор ошибки: BC36649 и BC36646

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

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

См. также

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

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

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

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

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

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