Исправить ошибку IndexOutOfRange в приведенном коде - C#
Формулировка задачи:
MethodInfo[] mii = t.GetMethods(); foreach (MethodInfo m1 in mii) { ParameterInfo[] pi = m1.GetParameters(); if (m1.Name == "sum") { int val; val = (int)m1.Invoke(ReflectOb, null); Console.WriteLine(val); } else if ((m1.Name.CompareTo("set") == 0) && (pi[0].ParameterType==typeof(int))) { object[] ob = new object[2]; ob[0] = 12; ob[1] = 18; m1.Invoke(ReflectOb, ob); } else if ((m1.Name.CompareTo("set") == 0) & (pi[0].ParameterType==typeof(double))) ////////////////////////////////<---Здесь вылетает ошибка из-за оператора &, почему? { Console.WriteLine("Параметр1 " + pi[0].ParameterType.Name+" Параметр 2 "+pi[0].ParameterType.Name); object[] ob = new object[2]; ob[0] = 1.12; ob[1] = 23.4; m1.Invoke(ReflectOb, ob); } else if (m1.Name == "isBetween") { object[] ob = new object[1]; ob[0] = 19; if ((bool)m1.Invoke(ReflectOb, ob)) Console.WriteLine(ob + "находится по середине"); else Console.WriteLine(ob + "Находится за пределами "); } else if (m1.Name.CompareTo("show") == 0){ m1.Invoke(ReflectOb, null); } } Console.ReadKey(); } }
Решение задачи: «Исправить ошибку IndexOutOfRange в приведенном коде»
textual
Листинг программы
MethodInfo[] mii = t.GetMethods(); foreach (MethodInfo m1 in mii) { switch(m1.Name) { case "sum": int val; val = (int)m1.Invoke(ReflectOb, null); Console.WriteLine(val); break; case "isBetween": object[] ob = new object[1]; ob[0] = 19; if ((bool)m1.Invoke(ReflectOb, ob)) Console.WriteLine(ob + "находится по середине"); else Console.WriteLine(ob + "Находится за пределами "); break; case "show": m1.Invoke(ReflectOb, null); break; case "set": ParameterInfo[] pi = m1.GetParameters(); if (pi[0].ParameterType == typeof(int)) { object[] ob = new object[2]; ob[0] = 12; ob[1] = 18; m1.Invoke(ReflectOb, ob); continue; } if (pi[0].ParameterType == typeof(double)) { Console.WriteLine("Параметр1 " + pi[0].ParameterType.Name + " Параметр 2 " + pi[0].ParameterType.Name); object[] ob = new object[2]; ob[0] = 1.12; ob[1] = 23.4; m1.Invoke(ReflectOb, ob); } break; default: break; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д