Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Базовый класс");

            //Объект базового класса
            BaseClass bc = new BaseClass(333);

            Console.WriteLine(bc.MethodReturn(1));
            Console.WriteLine(bc.MethodReturn("1"));

            //Обращение к свойству
            bc.property1 = 334;
            Console.WriteLine("\n property1 = {0}", bc.property1);

            Console.WriteLine("\nНаследуемый класс 1");
            //Объекты наследуемого класса
            ExtendedClass1 ex1_1 = new ExtendedClass1(1, 2);

            //Неявно вызывается метод ex1.ToString()
            Console.WriteLine(ex1_1);

            ExtendedClass1 ex1_2 = new ExtendedClass1(1, 2, 3);

            Console.WriteLine(ex1_2);

            Console.WriteLine("\nНаследуемый класс 2");
            ExtendedClass2 ex2 = new ExtendedClass2(100, 200, 300);

            Console.WriteLine(ex2.I1_method());
            Console.WriteLine(ex2.I2_method());
            Console.WriteLine(ex2.ExtendedClass2NewMethod(332));

            Console.WriteLine("\nЧастичный класс");
            PartialClass part = new PartialClass(333, 334);

            Console.WriteLine(part);

            Console.WriteLine("\nИспользование рефлексии");
            Console.WriteLine("Список методов класса ExtendedClass2:");
            foreach (System.Reflection.MemberInfo member in ex2.GetType().GetMethods())
            {
                Console.WriteLine(member.Name);
            }

            Rectangle rect = new Rectangle(5, 4);

            rect.Print();

            Console.ReadLine();
        }
Пример #2
0
 public static int ExtendedClass2NewMethod(this ExtendedClass2 ec2, int i)
 {
     return(i + 1);
 }