あるオブジェクトから別のオブジェクトにすべてのパブリック プロパティをコピーする機能を必要とするクラスの特定の階層があります。各クラスには、他のクラス とは異なる可能性が
ある特定のパブリック プロパティのセットがあります。
例:
class Base
{
// Common properties/methods...
public void Copy<T>(T data) where T : Base
{
// ...
}
}
class D1 : Base
{
public int ID
{
get;
set;
}
}
class D2 : Base
{
public string Name
{
get;
set;
}
}
グーグルを通じて、これらの方法について読みました:
- リフレクションの使用
- IL コードの生成
- シリアル化
それらはすべて、非常に複雑か非常に遅いか、場合によってはその両方です。
何か不足していますか?this
生ポインタにアクセスする他の方法はありますか?
編集:
明確にします。
T は、呼び出しクラスの型です。たとえば、D1 によって呼び出された場合、T は常に D1 になります。
ジェネリックの理由は、T が何であるかを実際に知ることができないためです。
何か不足していますか?パラメータとして
使用する必要がありますか?Base data