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");
}
}
}
本の例も実行できない例です。それを実行できるようにしては見ましたが、必要性というか?意味がつかめてません。四苦八苦して見ました。