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

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


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

Параметр конструктора атрибутов имеет тип, который не является допустимым типом параметра атрибута

Пример

Следующий пример приводит к возникновению ошибки CS0181:

C#
// CS0181.cs (12,6)

using System;
using System.Runtime.InteropServices;
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
unsafe class Attr : Attribute
{
    public Attr(delegate*<void> d) {}
}
unsafe class C
{
    [UnmanagedCallersOnly]
    [Attr(&M1)]
    static void M1()
    {
    }
}

В настоящее время среда CLR не разрешает типы параметров универсального атрибута, поэтому C# не разрешает универсальные типы параметров атрибутов.