http://msdn.microsoft.com/en-us/library/system.data.datatable.clone.aspxによると「これらのクラスが派生した場合、そのクローンも同じ派生クラスになります。System.Data.DataTableが派生すると、DataTable.Cloneは派生クラスをどのように返しますか?
以下のサンプルコードでは、基本クラスのcloneメソッドが派生クラスを作成するためにどのように「知っていますか?たSystem.Data.DataTableがクローニングされ
public class MyDataTable : System.Data.DataTable
{
public override System.Data.DataTable Clone()
{
//How is this a MyDataTable not a "DataTable" ?
return base.Clone();
}
}
static void Main(string[] args)
{
MyDataTable dt = new MyDataTable();
System.Diagnostics.Debug.Assert(dt.Clone() is MyDataTable);
}
私はそれがクールだと思っています - ありがとう! –