カテゴリー
C

独習C#第3版、P485 型パラメータの制約、2つの型パラメータの関係を確立する制約

using System;

namespace Chapter01All
{

    class A
    {
        string str;
        public A(string a = "defalt Class A")
        {
            str = a;
        }
        public void OutMsgA()
        {
            Console.WriteLine(str);
        }
    }
    class B : A
    {
        string str;
        public B(string b)
        {
            str = b;
        }
        public void OutMsgB()
        {
            Console.WriteLine(str);
        }

    }
    class MyGenClass<T, V> where V : T
    {
        A objT;
        B objV;

        public void OutMsgAB(string ab)
        {
            objT = new A(ab);
            objT.OutMsgA();     //Class AB

            objV = new B(ab);
            objV.OutMsgB();     //Class AB
        }
    }

    class Demo
    {
        static void Main()
        {
            A objA = new A("Class A");
            objA.OutMsgA();     //Class A

            B objB = new B("Class B");
            objB.OutMsgA();     //Defalt Class A
            objB.OutMsgB();     //Class B

            MyGenClass<A, B> x = new MyGenClass<A, B>();
            x.OutMsgAB("Class AB");
        }
    }
}

 本の例も実行できない例です。それを実行できるようにしては見ましたが、必要性というか?意味がつかめてません。四苦八苦して見ました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

inserted by FC2 system