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


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

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

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

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

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

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

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

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

Option Strict Off
Imports System.Runtime.CompilerServices
Module Module1
    Sub Main()

        Dim caller As New Class1
        '' Not valid.
        'caller.targetExtension(1, "2")

    End Sub

    <Extension()> _
    Sub targetExtension(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
    End Sub

    Class Class1
    End Class

End Module

Идентификатор ошибки: BC36655 (в запросах LINQ) и BC36652 (вне запросов)

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

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

    caller.targetExtension(Of Integer)(1, "2")
    caller.targetExtension(Of String)(1, "2")
    

См. также

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

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

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

Ссылки

Оператор Option Strict