Compiler Error CS0655

'parameter' is not a valid named attribute argument because it is not a valid attribute parameter type

Positional and named parameters for an attribute class are limited to the following attribute parameter types:

  • One of the following types: bool, byte, char, double, float, int, long, sbyte, short, string, uint, ulong, or ushort.

  • The type object.

  • The type System.Type.

  • An enum type, provided that it has public accessibility, and that any types in which it is nested also have public accessibility.

  • Single-dimensional arrays of the preceding types.

Example

The following sample generates CS0655:

// CS0655.cs
using System;

class MyAttribute : Attribute
{
    // decimal is not valid attribute parameter type
    public decimal d = 0;
    public int e = 0;
}

[My(d = 0)]   // CS0655
// Try the following line instead:
// [My(e = 0)]
class C
{
    public static void Main()
    {
    }
}

Change History

Date

History

Reason

May 2010

Added a list of valid parameter types.

Customer feedback.