※※環境は C#.NET2.0 です。Linq等便利なモノが使えません…
※※今回の処理はかなり回りくどい方法を取っていることを自覚しています。二つのDtoを用いているのは現在の仕様上仕方のないことなのだとご理解いただけると幸いです。
AbcDtoとXyzDtoが以下のように定義されているとします。
C#
1public class AbcDto 2{ 3 public string a { get; set; } 4 public string b { get; set; } 5 public string c { get; set; } 6 public string same1 { get; set; } 7 public string same2 { get; set; } 8 public string same3 { get; set; } 9 public string same4 { get; set; } 10 public string same5 { get; set; } 11} 12public class XyzDto 13{ 14 public string x { get; set; } 15 public string y { get; set; } 16 public string z { get; set; } 17 public string same1 { get; set; } 18 public string same2 { get; set; } 19 public string same3 { get; set; } 20 public string same4 { get; set; } 21 public string same5 { get; set; } 22}
上記のように、AbcDtoとXyzDtoには同じ内容を表す項目same1,same2,...,same5があります
また、AbcDtoのすべての要素にはすでに値が入っており、XyzDtoのすべての要素はnullとします。
このとき、AbcDtoからXyzDtoに任意のsame1~same5の値を渡すメソッドPass(AbcDto abc, XyzDto xyz)を実装することを考えます
ただし、same1~same5の内どの値を渡すかは呼ばれる段階までわかりません
このような関数を実装する手段をご教授願います。
わたしが思いついたのは配列target[5]をPass()の引数に追加し、0,1でsame1~same5のうちどれを渡すかを制御するというものです。しかしこれはあまり可読性が高いように思えません。
もっと見る人が分かりやすい方法はありますでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/17 00:39