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


Модификатор Optional нельзя применить к первому параметру метода расширения

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

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

'Optional' нельзя применять к первому параметру метода расширения. Первый параметр задает расширяемый тип.
'Optional' cannot be applied to the first parameter of an extension method. The first parameter specifies which type to extend.

Первый параметр метода расширения указывает тип данных, который расширяется методом. При выполнении метода первый параметр привязан к экземпляру типа данных, который вызывает метод. Таким образом, первый параметр необходим и не может быть необязательным.

Ограничение применяется только к первому параметру. Другие параметры могут быть обязательными или необязательными, следуя тем же правилам, что и в любом другом методе. Дополнительные сведения см. в разделе Список параметров.

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

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

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

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

Пример

Первый параметр в следующем примере является только указателем того, что метод Print расширяет String тип данных. Следовательно, он не может быть необязательным.

<Extension()>
Public Sub Print (ByVal str As String)
    Console.WriteLine(str)
End Sub

Когда метод расширения вызывается следующим образом, параметр str в методе привязан к greeting, экземпляру String, который вызывает Print. Компилятор использует greeting в качестве аргумента для метода расширения Print.

    Dim greeting As String = "Hello"
    greeting.Print()

См. также

Задачи

Практическое руководство. Объявление необязательных параметров процедуры

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

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

Необязательные параметры