Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0447

Atrybutów nie można używać w argumentach typu, tylko dla parametrów typu

Ten błąd występuje, gdy stosujesz atrybut do argumentu typu występującego w instrukcji wywołania. Dopuszczalne jest zastosowanie atrybutu do parametru typu w klasie lub instrukcji deklaracji metody, takiej jak:

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

Następujący wiersz kodu spowoduje wygenerowanie tego błędu. Zakłada się, że klasa C, zdefiniowana w poprzednim wierszu kodu, ma statyczną metodę o nazwie MyStaticMethod.

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

Przykład

Poniższy kod generuje błąd CS0447:

C#
// 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
    }
}

Uwaga

Ten błąd kompilatora nie jest już używany w systemie Roslyn.