カテゴリー
C

独習C#第3版、P479 2つの型パラメータを持つジェネリック

namespace Chapter01All
{
    class TwoTypePrametorGeneric<T, V>
    {
        public V Kasan(T a, V b)
        {
            return (V)( (dynamic)a + b);
        }
    }
    class IntToDouble : TwoTypePrametorGeneric<int, double> { }
    class DoubleToInt : TwoTypePrametorGeneric<double, int> { }

    class Demo
    {
        static void Main()
        {
            IntToDouble objA = new IntToDouble();
            Console.WriteLine(objA.Kasan(100, 100.5));  //200.5

            DoubleToInt objB = new DoubleToInt();
            Console.WriteLine(objB.Kasan(100.5, 200));  //300
        }
    }
}

例えばの話ですが、intとdoubleを加算しようと思えば、キャストすればいいのですが、それと同じような雰囲気のクラスを作って見ました。クラスの名称と関数を使うときに、対応は間違えられないとは思います。

コメントを残す

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

inserted by FC2 system