예제 #1
0
파일: TestRental.cs 프로젝트: JazzCF/BA_CF
    public static void RunTest(IDemoOne demo)
    {
        Console.WriteLine();
        demo.SomeEvent += HandleSomeEventA;
        demo.FireOffSomeEvent();

        Console.WriteLine();
        demo.SomeEvent -= HandleSomeEventA;
        demo.FireOffSomeEvent();

        Console.WriteLine();
        demo.SomeEvent += delegate(string arg1, object arg2, double arg3, MyTuple mt) { Console.WriteLine("SomeEvent handler: " + arg1 + ", " + arg2 + ", " + arg3 + ", " + mt.A + ", " + mt.B); };
        demo.SomeEvent += delegate(string arg1, object arg2, double arg3, MyTuple mt) { Console.WriteLine("SomeEvent handler two: " + arg1 + ", " + arg2 + ", " + arg3 + ", " + mt.A + ", " + mt.B); };
        demo.FireOffSomeEvent();

        Console.WriteLine();

        Console.WriteLine(demo.GetSomeVariant());

        Console.WriteLine();

        demo.Say2("demo.Say2");
        ((IDemoTwo)demo).Say2("((IDemoTwo)demo).Say2");

        demo.SayEnum(DemoEnum.Bar, DemoEnum.Foo);

        /*
         * uint n;
         * string ostr;
         * demo.WithOutParameters (out n, "21", out ostr);
         * Console.WriteLine ("n: " + n);
         * Console.WriteLine ("ostr: " + ostr);
         */

        /*
         * IDemoOne[] objs = demo.GetObjArr ();
         * foreach (IDemoOne obj in objs)
         *      obj.Say ("Some obj");
         */

        Console.WriteLine("SomeProp: " + demo.SomeProp);
        demo.SomeProp = 321;

        DemoProx demoProx = demo as DemoProx;

        if (demoProx != null)
        {
            //demoProx.SayRepeatedly(5, "Repetition");
            //demoProx.GetType().InvokeMember("RepProx", System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static, null, null, new object[] {demoProx, 5, "Lala"});
            //demoProx.GetType().GetMethod("RepProx").Invoke(null, new object[] {demoProx, 5, "Lala"});
            demoProx.GetType().GetMethod("RepProx", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).Invoke(null, new object[] { demoProx, 5, "Lala" });
            //demoProx.GetType().InvokeMember("RepProx", System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, demoProx, new object[] {5, "Lala"});
        }

        demo.ThrowSomeException();
    }
예제 #2
0
	public static void RunTest (IDemoOne demo)
	{
		Console.WriteLine ();
		demo.SomeEvent += HandleSomeEventA;
		demo.FireOffSomeEvent ();

		Console.WriteLine ();
		demo.SomeEvent -= HandleSomeEventA;
		demo.FireOffSomeEvent ();

		Console.WriteLine ();
		demo.SomeEvent += delegate (string arg1, object arg2, double arg3, MyTuple mt) {Console.WriteLine ("SomeEvent handler: " + arg1 + ", " + arg2 + ", " + arg3 + ", " + mt.A + ", " + mt.B);};
		demo.SomeEvent += delegate (string arg1, object arg2, double arg3, MyTuple mt) {Console.WriteLine ("SomeEvent handler two: " + arg1 + ", " + arg2 + ", " + arg3 + ", " + mt.A + ", " + mt.B);};
		demo.FireOffSomeEvent ();

		Console.WriteLine ();

		Console.WriteLine (demo.GetSomeVariant ());

		Console.WriteLine ();

		demo.Say2 ("demo.Say2");
		((IDemoTwo)demo).Say2 ("((IDemoTwo)demo).Say2");

		demo.SayEnum (DemoEnum.Bar, DemoEnum.Foo);

		/*
		uint n;
		string ostr;
		demo.WithOutParameters (out n, "21", out ostr);
		Console.WriteLine ("n: " + n);
		Console.WriteLine ("ostr: " + ostr);
		*/

		/*
		IDemoOne[] objs = demo.GetObjArr ();
		foreach (IDemoOne obj in objs)
			obj.Say ("Some obj");
		*/

		Console.WriteLine("SomeProp: " + demo.SomeProp);
		demo.SomeProp = 321;

		DemoProx demoProx = demo as DemoProx;
		if (demoProx != null) {
			//demoProx.SayRepeatedly(5, "Repetition");
			//demoProx.GetType().InvokeMember("RepProx", System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static, null, null, new object[] {demoProx, 5, "Lala"});
			//demoProx.GetType().GetMethod("RepProx").Invoke(null, new object[] {demoProx, 5, "Lala"});
			demoProx.GetType().GetMethod("RepProx", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).Invoke(null, new object[] {demoProx, 5, "Lala"});
			//demoProx.GetType().InvokeMember("RepProx", System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, demoProx, new object[] {5, "Lala"});
		}

		demo.ThrowSomeException ();
	}
예제 #3
0
 public DemoClass(IDemoOne one)
 {
     _One = one;
 }
예제 #4
0
 public DemoClass(IDemoOne one)
 {
     _One = one;
 }