Задача на логическое мышление на собеседовании - C#
Формулировка задачи:
Имеется несколько классов. В каждом классе есть функция, внутри которой имеется длинный switch с одними и теми же логическими условиями для каждого класса но вызывающими свои уникальные "классовые" функции.
Вопрос : Как избавиться от переписывания одного и того же switch - a , чтобы в каждом классе был вызов ОДНОЙ и той же функции, где этот switch и реализуется?
Может как то с делегатами ???
Спасибо.
Решение задачи: «Задача на логическое мышление на собеседовании»
textual
Листинг программы
class ClassA { public void ClassAMethod(string sCondition, int iParam1, int iParam2, string sParam3) { int m = 0; string s = String .Empty ; switch (sCondition) { case "Condition 1": m=ClADo1(iParam1, iParam2, sParam3); break; case "Condition 2": s=ClADo2( sParam3); break; default: Console.WriteLine("Class1 - default"); break; } } int ClADo1(int iParam1, int iParam2, string sParam3) { Console.WriteLine("ClADo1");/* Do something */ return 2; } string ClADo2(string sParam3) { Console.WriteLine("ClADo2");/* Do something */ return "a"; } } class ClassB { public void ClassBMethod(string sCondition, string sParam3) { int l = String.Empty; switch (sCondition) { case "Condition 1": ClBDo1(sParam3); break; case "Condition 2": l = ClBDo2( ); break; default: Console.WriteLine("Class2 - default"); break; } } void ClBDo1( string sParam3) { Console.WriteLine("ClBDo1");/* Do something */ return ; } int ClBDo2() { Console.WriteLine("ClBDo2"); /* Do something */return 33 } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д