static void Main()
        {
            MyClass1 <string> instance1 = new MyClass1 <string>();
            // MyClass1 <int> instance1 = new MyClass1 <int> (); // Помилка. int - value тип.

            MyClass2 <int> instance2 = new MyClass2 <int>();

            // MyClass2 <string> instance2 = new MyClass2 <string> (); // Помилка. string - reference тип.

            // Delay.
            Console.ReadKey();
        }
예제 #2
0
        static void Main()
        {
            MyClass1 <string> instance1 = new MyClass1 <string>();
            //MyClass1<int> instance1 = new MyClass1<int>();                // Ошибка.    int - структурный тип.

            MyClass2 <int> instance2 = new MyClass2 <int>();

            //MyClass2<string> instance2 = new MyClass2<string>();          // Ошибка.    string - ссылочный тип.

            // Delay.
            Console.ReadKey();
        }
예제 #3
0
        static void Main()
        {
            // В качестве аргумента типа подходит Derived, т.к., он наследуется от обоих интерфейсов.
            MyClass <Derived> my1 = new MyClass <Derived>();
            //MyClass<IInterface> my1 = new MyClass<IInterface>();   // Ошибка.

            //  Аргумент типа подходит, т.к., IInterface<object> наследуется от IInterface
            MyClass <IInterface <object> > my2 = new MyClass <IInterface <object> >();

            MyClass2 <Derived>              my3 = new MyClass2 <Derived>();
            MyClass2 <Derived2>             my4 = new MyClass2 <Derived2>();
            MyClass2 <IInterface <object> > my5 = new MyClass2 <IInterface <object> >();

            // Delay.
            Console.ReadKey();
        }
예제 #4
0
        static void Main()
        {
            // Як аргумент типу підходить Derived, тому що, він реалізовується від обох інтерфейсів.
            MyClass <Derived> my1 = new MyClass <Derived>();
            // MyClass <IInterface> my1 = new MyClass <IInterface> (); // Помилка.

            // Аргумент типу підходить, тому що, IInterface <object> реалізовується від IInterface
            MyClass <IInterface <object> > my2 = new MyClass <IInterface <object> >();

            MyClass2 <Derived>              my3 = new MyClass2 <Derived>();
            MyClass2 <Derived2>             my4 = new MyClass2 <Derived2>();
            MyClass2 <IInterface <object> > my5 = new MyClass2 <IInterface <object> >();

            // Delay.
            Console.ReadKey();
        }