Задача на логическое мышление на собеседовании - 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  }
   }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.417 из 5