次の C# コードを実行すると、BaseClass() called
理解できる のみが出力されます。BaseClass.CreateInstance()
ただし、実際にはそのメソッドを継承する別のクラスであっても、呼び出されているクラスのインスタンスを常に返したい場合はどうすればよいでしょうか?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Example
{
class BaseClass
{
public BaseClass()
{
Console.WriteLine("BaseClass() called");
}
public static BaseClass CreateInstance()
{
return new BaseClass();
}
}
class DerivedClass : BaseClass
{
public DerivedClass()
: base()
{
Console.WriteLine("DerivedClass() called");
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass.CreateInstance();
Console.ReadLine(); //pause so output is readable
}
}
}