Прочитать на английском

Поделиться через


Ошибка компилятора CS0447

Невозможно использовать атрибуты для аргументов-типов, можно только для параметров-типов

Эта ошибка возникает при применении атрибута к аргументу типа, который содержится в операторе вызова. Разрешается применять атрибут к параметру типа в операторе объявления класса или метода, как показано в следующем коде:

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

В приведенной ниже строке кода возникает эта ошибка. Предполагается, что класс C, определенный в предыдущей строке кода, имеет статический метод с именем MyStaticMethod.

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

Пример

Следующий код создает ошибку 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
    }
}

Примечание

Эта ошибка компилятора больше не используется в Roslyn.