Ошибка компилятора 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
}
}