|
分類:[.NET 全般]
今こんなかんじでテストプログラム作っています。
Get なんですけど 引数のType すべて対応するのって すべて調べて対応するのって大変なんですけど
どんなタイプでも対応できる方法ってあるのでしょうか?
private void button2_Click(object sender, EventArgs e) { string[] strs = new string[] { "a", "b", "c", "d", "e" }; Get(strs, 0);
int[] ints = new int[] { 1, 2, 3, 4, 5 }; Get(ints, 1);
List<int> ilst = new List<int>() { 11, 22, 33, 44 }; Get(ilst, 2); }
private void Get(object obj, int Num) { string[] strs;
if(obj.GetType() == typeof(Int32[])) { strs = new string[((Int32[])obj).Count()]; for(int inum = 0; inum < strs.Count(); inum++) { strs[inum] = ((Int32[])obj)[inum].ToString(); } } else if(obj.GetType() == typeof(Double[])) { strs = new string[((Double[])obj).Count()]; for(int inum = 0; inum < strs.Count(); inum++) { strs[inum] = ((Int32[])obj)[inum].ToString(); } } else if(obj.GetType() == typeof(Boolean[])) { strs = new string[((Boolean[])obj).Count()]; for(int inum = 0; inum < strs.Count(); inum++) { strs[inum] = ((Int32[])obj)[inum].ToString(); } } else if(obj.GetType() == typeof(List<int>)) { strs = new string[((List<int>)obj).Count()]; for(int inum = 0; inum < strs.Count(); inum++) { strs[inum] = ((List<int>)obj)[inum].ToString(); } } else { strs = new string[((String[])obj).Count()]; for(int inum = 0; inum < strs.Count(); inum++) { strs[inum] = ((String[])obj)[inum].ToString(); } }
〜この後延々とつづきそう〜 }
|