- PR -

あるクラスのメンバを別のクラスのメンバへ値をコピー

1
投稿者投稿内容
さすけ
常連さん
会議室デビュー日: 2004/04/10
投稿数: 38
投稿日時: 2004-05-22 17:23
さすけでございます。

【実現したいこと】
ClassAにある複数のメンバの値をClassBにある複数のメンバに値をコピーしたい。

【条件】
ClassA、ClassBには、各メンバが30個ぐらい存在する。
全て同じ型のメンバ同じ個数分存在する。
30くらいのメンバ全てではなくその中の20個ぐらいをコピーしたい。
メンバを順番に参照してコピーをするのではなく、Cで言うmemcpyの様な
もので一括コピーしたい。

以上
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-05-22 17:27
引用:

メンバを順番に参照してコピーをするのではなく、Cで言うmemcpyの様な
もので一括コピーしたい。



「memcpy() 的」は無理。
ありえません。

でも、リフレクションを使えばメンバの列挙が出来るので、延々と代入式を書き並べないでもメンバ変数の値を代入して回ることは出来ます。

代入したいメンバ変数に、カスタム属性つけておくと便利かも。


_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
さすけ
常連さん
会議室デビュー日: 2004/04/10
投稿数: 38
投稿日時: 2004-05-22 17:39
渋木様

早速の回答ありがとうございます。

リフレクションについて調べ、実装したいと思います。

以上
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-05-22 17:55
引用:

リフレクションについて調べ、実装したいと思います。



コード:
Hoge hoge = new Hoge();



の時

コード:
Type type = hoge.GetType();
type.GetFields (BindingFlags.Public);



みたいな雰囲気かな?

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
1

スキルアップ/キャリアアップ(JOB@IT)