BC36550: O atributo 'Extension' pode ser aplicado apenas às declarações 'Module', 'Sub' ou 'Function'

A única maneira de estender um tipo de dados no Visual Basic é definir um método de extensão dentro de um módulo padrão. O método de extensão pode ser um procedimento Sub ou Function. Todos os métodos de extensão precisam ser marcados com o atributo de extensão, <Extension()>, do namespace System.Runtime.CompilerServices. Opcionalmente, um módulo que contém um método de extensão pode ser marcado da mesma maneira. Nenhum outro uso do atributo de extensão é válido.

ID do erro: BC36550

Para corrigir este erro

  • Remova os atributos de extensão.

  • Reprojete sua extensão como um método, definido em um módulo de integração.

Exemplo

O exemplo a seguir define um método Print para o tipo de dados String.

Imports StringUtility
Imports System.Runtime.CompilerServices
Namespace StringUtility
    <Extension()>
    Module StringExtensions
        <Extension()>
        Public Sub Print (ByVal str As String)
            Console.WriteLine(str)
        End Sub
    End Module
End Namespace

Confira também