'Opcional' não pode ser aplicado ao primeiro parâmetro de um método de extensão

'Opcional' 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 é associado à instância do tipo de dados que invoca o método. Portanto, ele é necessário e não pode ser opcional.

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

ID do erro: BC36553

Para corrigir este erro

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

  • 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 método Print estende o tipo de dados String. Portanto, ele 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 maneira a seguir, o parâmetro str no método é associado a greeting, a instância de String que chama Print. O compilador usa greeting como o argumento para o método de extensão Print.

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

Confira também