using System;
namespace Chapter01All
{
class MyClass
{
public MyClass()
{
Console.WriteLine("Creaing a MyClass instance.");
}
public void SayHello()
{
Console.WriteLine("今日は");
}
}
class Test : MyClass
{
public Test()
{
Console.WriteLine("Creating a Test instance.");
}
public void SayGoodBye()
{
SayHello(); //今日は
Console.WriteLine("さようなら");
}
}
class GenericConstractorDemo
{
static void Main()
{
Test t1 = new Test();
t1.SayHello(); //今日は
t1.SayGoodBye();
}
}
}
using System;
namespace Chapter01All
{
class MyClass
{
public MyClass()
{
Console.WriteLine("Creaing a MyClass instance.");
}
public void SayHello()
{
Console.WriteLine("今日は");
}
}
class Test<T> where T : new()
{
T obj;
public Test()
{
Console.WriteLine("Creating a Test instance.");
obj = new T();
}
public void SayGoodBye()
{
Console.WriteLine("さようなら");
//SayHelloを呼び出せない。継承であれば、出来た。
}
}
class GenericConstractorDemo
{
static void Main()
{
Test<MyClass> t1 = new Test<MyClass>();
t1.SayGoodBye(); //MyClassのSayHelloを呼び出せない。
MyClass objA = new MyClass();
objA.SayHello(); //MyClassのインスタンスは出来る。
}
}
}
MyClassのSayHelloを呼び出せるのか?出来ないのか?それだけではないと思いますが、違いが分からない。