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


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

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

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

"class" не является классом атрибута
'class' is not an attribute class

Предпринята попытка использовать класс, не являющийся атрибутом, в блоке атрибута. Все типы атрибута должны быть унаследованы от System.Attribute.

Пример

В следующем примере возникает ошибка CS0616.

// CS0616.cs
// compile with: /target:library
[CMyClass(i = 5)]   // CS0616
public class CMyClass {}

В следующем примере представлен способ определения атрибута.

// CreateAttrib.cs
// compile with: /target:library
using System;

[AttributeUsage(AttributeTargets.Class|AttributeTargets.Interface)]
public class MyAttr : Attribute
{
   public int Name = 0;
   public int Count = 0;

   public MyAttr (int iCount, int sName)
   {
      Count = iCount;
      Name = sName;
   }
}

[MyAttr(5, 50)]
class Class1 {}

[MyAttr(6, 60)]
interface Interface1 {}