「AからB(C)を生成する」と実装したいのですが、引数がないオーバーロードになってしまいC#言語の規約上エラーになってしまいます。
このような場合、どのように工夫してコードにしたらよいのか教えてください。
0. クラスAはWebサービスの引数として受け取ります。
0. クラスAはインターフェイスとしてプロパティが確定しています。
0. クラスB,Cは内部で使用するクラスです。
0. クラスB,Cはまだ変更が可能な状態です。
0. クラスAからB,Cを生成する関数を定義したいです。
C#
1namespace T 2{ 3 class A 4 { 5 public int aa { get; set; } 6 public string bb { get; set; } 7 public string cc { get; set; } 8 } 9 10 class B 11 { 12 public int aa { get; set; } 13 public string bb { get; set; } 14 public bool xx { get; set; } 15 } 16 17 class C 18 { 19 public int aa { get; set; } 20 public int yy { get; set; } 21 } 22 23 static class Ax 24 { 25 public static B Generate(this A a) 26 { 27 return new B { aa = a.aa, bb = a.bb, xx = false }; 28 } 29 public static C Generate(this A a) 30 { 31 return new C { aa = a.aa, yy = Convert.ToInt32(a.bb) }; 32 } 33 } 34 class Program 35 { 36 static void Main(string[] args) 37 { 38 var a = new A { aa = 1, bb = "2", cc = "A" }; 39 new Program().Service(a); 40 } 41 42 public void Service(A a) 43 { 44 B b = a.Generate(); 45 C c = a.Generate(); 46 } 47 } 48}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/09 03:44