Ler em inglês

Partilhar via


Erro do compilador CS0447

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

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

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

A seguinte linha de código irá gerar este erro. Supõe-se que a classe C, definida na linha de código anterior, tem 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
    }
}

Nota

Este erro de compilador não é mais usado no Roslyn.