Перегрузка методов и определение типа переменных (int, double, string) - C#

Узнай цену своей работы

Формулировка задачи:

Идея в том, чтобы определить, что ввел пользователь: тип double, integer или string, и сложить эти 2 переменные с помощью перегруженного метода. Моя проблема в том, что я не могу получить xTrue и yTrue для выполнения задачи, т.к., как я понял, эти xTrue и yTrue создаются в if и там же остаются - не переходят в дальнейший кусок кода. Возможно, я пытаюсь сделать это через *опу, но пока не знаю, как можно по-другому.
         namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int yInt = 0; double yDouble = 0; string yString = "0";
            int xInt = 0; double xDouble = 0; string xString = "0";
 
            Console.Write("Enter any numbers of symbols: ");        
            var x = Console.ReadLine();
 
            //КОНВЕРТИРУЮ x В ПОДХОДЯЩИЙ ТИП                 
            if (Int32.TryParse(x, out xInt))
                xInt = Convert.ToInt32(x);
            else if(Double.TryParse(x, out xDouble))
                xDouble = Convert.ToDouble(x);
            else
                xString = Convert.ToString(x);
            //КОНВЕРТИРУЮ x В ПОДХОДЯЩИЙ ТИП  
 
          Console.Write("\nEnter any numbers of symbols again: ");
          var y = Console.ReadLine();
 
            //КОНВЕРТИРУЮ y В ПОДХОДЯЩИЙ ТИП
          if (Int32.TryParse(y, out xInt))
              yInt = Convert.ToInt32(y);
          else if (Double.TryParse(y, out xDouble))
              yDouble = Convert.ToDouble(y);
          else
              yString = Convert.ToString(y);
            //КОНВЕРТИРУЮ y В ПОДХОДЯЩИЙ ТИП
            
          if (xInt != 0)
          { int xTrue = xInt; }
          if (xDouble != 0)
          { double xTrue = xDouble; }
          if (xString != "0")
          { string xTrue = xString; }
 
          if (yInt != 0)
          { int yTrue = yInt; }
          if (yDouble != 0)
          { double yTrue = xDouble; }
          if (yString != "0")
          { string yTrue = yString; }
 
          Console.Write("\nResult: {0}", sum(xTrue, yTrue)); //Здесь компилятор пишет, что xTrue и yTrue не существуют.
          Console.ReadLine();
          }
 
        static int sum(int x, int y) 
        { return x + y; }
        static string sum(string x, string y)
        { return x + y; }
        static double sum(double x, double y)
        { return x + y; }

    }
}
Подскажите пожалуйста решение моей задачи.. ну или хотя бы направление. Спасибо! P.S. Извините, если это похоже на быдлокод. Я только учусь.

Решение задачи: «Перегрузка методов и определение типа переменных (int, double, string)»

textual
Листинг программы
 if (Int32.TryParse(x, out xInt)) {}

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


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

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

6   голосов , оценка 3.333 из 5
Похожие ответы