更新:2007 年 11 月

错误消息

属性不能用于类型变量,只能用于类型参数

将属性应用于出现在调用语句中的类型变量时会发生此错误。将属性应用于类或方法声明语句中的类型参数是可以接受的,如下所示:

 复制代码
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
    }
}