O termo «facultativo» não pode ser aplicado ao primeiro parâmetro de um método de extensão

O termo «facultativo» não pode ser aplicado ao primeiro parâmetro de um método de extensão. O primeiro parâmetro especifica qual tipo estender.

O primeiro parâmetro de um método de extensão especifica o tipo de dados que o método estende. Quando o método é executado, o primeiro parâmetro é vinculado à instância do tipo de dados que invoca o método. Portanto, o primeiro parâmetro é necessário e não pode ser opcional.

A restrição aplica-se apenas ao primeiro parâmetro. Outros parâmetros podem ser opcionais ou não, seguindo as mesmas regras de qualquer outro método. Para obter mais informações, consulte Lista de parâmetros.

ID de erro: BC36553

Para corrigir este erro

  • Se desejar que o primeiro parâmetro atual especifique o tipo de dados que está sendo estendido, remova a Optional palavra-chave.

  • Se o primeiro parâmetro atual for um parâmetro padrão para o método e você não quiser que ele represente o tipo de dados que está sendo estendido, adicione um novo primeiro parâmetro.

Exemplo

O primeiro parâmetro no exemplo a seguir é a única indicação de que o Print método estende o tipo de String dados. Por conseguinte, não pode ser opcional.

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

Quando o método de extensão é chamado da seguinte forma, str parâmetro no método é vinculado a greeting, a instância de String que chama Print. O compilador usa greeting como argumento para o método Printde extensão .

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

Consulte também