a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
81 lines
1.7 KiB
C#
81 lines
1.7 KiB
C#
using System;
|
|
[AttributeUsage (AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = true)]
|
|
public class SimpleAttribute : Attribute {
|
|
|
|
string name = null;
|
|
|
|
public string MyNamedArg;
|
|
|
|
private string secret;
|
|
|
|
public SimpleAttribute (string name)
|
|
{
|
|
this.name = name;
|
|
}
|
|
|
|
public string AnotherArg {
|
|
get {
|
|
return secret;
|
|
}
|
|
set {
|
|
secret = value;
|
|
}
|
|
}
|
|
|
|
public long LongValue {
|
|
get {
|
|
return 0;
|
|
}
|
|
set { }
|
|
}
|
|
|
|
public long[] ArrayValue {
|
|
get {
|
|
return new long[0];
|
|
}
|
|
set { }
|
|
}
|
|
|
|
public object D;
|
|
}
|
|
|
|
[Simple ("Interface test")]
|
|
public interface IFoo {
|
|
void MethodOne (int x, int y);
|
|
bool MethodTwo (float x, float y);
|
|
}
|
|
|
|
[Simple ("Fifth", D=new double[] { -1 })]
|
|
class Blah2
|
|
{
|
|
}
|
|
|
|
[Simple ("Fifth", D=new double[0])]
|
|
class Blah3
|
|
{
|
|
}
|
|
|
|
[Simple ("Dummy", MyNamedArg = "Dude!")]
|
|
[Simple ("Vids", MyNamedArg = "Raj", AnotherArg = "Foo")]
|
|
[Simple ("Trip", LongValue=0)]
|
|
[Simple ("Fourth", ArrayValue=new long[] { 0 })]
|
|
public class Blah {
|
|
|
|
public static int Main ()
|
|
{
|
|
object o = (((SimpleAttribute)typeof(Blah2).GetCustomAttributes (typeof (SimpleAttribute), false)[0]).D);
|
|
if (o.ToString () != "System.Double[]")
|
|
return 1;
|
|
|
|
if (((double[])o)[0].GetType () != typeof (double))
|
|
return 2;
|
|
|
|
o = (((SimpleAttribute)typeof(Blah3).GetCustomAttributes (typeof (SimpleAttribute), false)[0]).D);
|
|
if (o.ToString () != "System.Double[]")
|
|
return 3;
|
|
|
|
Console.WriteLine ("OK");
|
|
return 0;
|
|
}
|
|
}
|