47 lines
1.0 KiB
C#
Raw Normal View History

// Test various kinds of arrays as custom attribute parameters
using System;
enum EnumType {
X,
Y
};
class FooAttribute : Attribute
{
public string [] StringValues;
public object [] ObjectValues;
public EnumType [] EnumValues;
public Type [] Types;
public FooAttribute ()
{
}
}
[Foo (StringValues = new string [] {"foo", "bar", "baz"},
ObjectValues = new object [] {1, 'A', "B"},
EnumValues = new EnumType [] { EnumType.X, EnumType.Y },
Types = new Type [] {typeof (int), typeof (Type)}
)]
class Test
{
public static int Main ()
{
FooAttribute foo = (FooAttribute) typeof (Test)
.GetCustomAttributes (false) [0];
if (foo.StringValues [0] != "foo"
|| foo.StringValues [1] != "bar"
|| foo.StringValues [2] != "baz"
|| 1 != (int) foo.ObjectValues [0]
|| 'A' != (char) foo.ObjectValues [1]
|| "B" != (string) foo.ObjectValues [2]
|| EnumType.X != foo.EnumValues [0]
|| EnumType.Y != foo.EnumValues [1]
|| foo.Types [0] != typeof (int)
|| foo.Types [1] != typeof (Type)
)
return 1;
return 0;
}
}