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


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

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

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

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

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

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

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

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

Option Strict Off
Module Module1
    Sub Main()
        '' Not valid.
        'targetMethod(1, "2")
    End Sub

    Sub targetMethod(Of T)(ByVal p1 As T, ByVal p2 As T)
    End Sub

End Module

Идентификатор ошибки: BC36654 (внутри запросов LINQ) и BC36651 (за пределами запросов)

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

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

    targetMethod(Of Integer)(1, "2")
    

См. также

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

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

Ссылки

Оператор Option Strict