Ler em inglês

Compartilhar via


Erro do Compilador CS0447

Atributos não podem ser usados em argumentos de tipo, somente em parâmetros de tipo

Esse erro ocorre quando você aplica um atributo a um argumento de tipo que ocorre em uma instrução de invocação. É aceitável aplicar um atributo a um parâmetro de tipo em uma instrução de declaração de classe ou método, como o seguinte:

class C<[some attribute] T> {…}

A linha de código a seguir gerará esse erro. Supõe-se que a classe C, definida na linha de código anterior, tenha um método estático chamado MyStaticMethod.

C<[some attribute] T>.MyStaticMethod();

Exemplo

O código a seguir gera o erro CS0447:

// CS0447.cs
using System;

namespace Test41
{
    public interface I<A>
    {
        void Meth<B>();
    }
    public class B : I<int>
    {
        void I<[Test] int>.Meth<X>() { }  // CS0447
    }
}

Observação

Esse erro do compilador não é mais usado na Roslyn.