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


"Optional" не может применяться к первому параметру метода расширения

"Optional" не может применяться к первому параметру метода расширения. Первый параметр указывает тип для расширения.

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

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

Идентификатор ошибки: 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()  

См. также