Перегрузка методов и определение типа переменных (int, double, string) - C#
Формулировка задачи:
Идея в том, чтобы определить, что ввел пользователь: тип double, integer или string, и сложить эти 2 переменные с помощью перегруженного метода.
Моя проблема в том, что я не могу получить xTrue и yTrue для выполнения задачи, т.к., как я понял, эти xTrue и yTrue создаются в if и там же остаются - не переходят в дальнейший кусок кода.
Возможно, я пытаюсь сделать это через *опу, но пока не знаю, как можно по-другому.
Подскажите пожалуйста решение моей задачи.. ну или хотя бы направление. Спасибо!
P.S. Извините, если это похоже на быдлокод. Я только учусь.
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; }
}
}Решение задачи: «Перегрузка методов и определение типа переменных (int, double, string)»
textual
Листинг программы
if (Int32.TryParse(x, out xInt)) {}