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


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

Обновлен: Ноябрь 2007

Сообщение об ошибке

Невозможно использовать атрибуты для аргументов-типов, можно только для параметров-типов
Attributes cannot be used on type arguments, only on type parameters

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

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

В следующей строке кода создается ошибка CS0447. Предполагается, что класс 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
    }
}