Авто преобразования базовых типов данных char int с#
Всем привет. Решил задачу с перегруженным статическим методом. Если изначально строго прописывать int или char в методе Main, то программа работает корректно (если мы вводим определенный тип данных). Но как реализовать ввод через консоль чтобы можно было и char и int вводить? (добавляю, сейчас реализация через ввод int в консоль=> перегруженный статический метод задействован на половину, можно поменять в Main на char, все будет также, но вводить в консоль придется символы. А чтобы программа работала и при вводе char и при int данных из консоли) Необходимо унифицированное решение вне зависимости от типов данных
using System;
class T_5_8
{
static void Add(int num1, int num2)
{
int size = (num2 - num1) + 1;
int[] Arr = new int[size];
for (int k = 1; k < Arr.Length; k++)
{
Arr[0] = num1;
Arr[k] = num1 + k;
}
foreach (int s in Arr)
{
Console.Write("|" + s);
}
Console.WriteLine("|");
}
static void Add(char symb1, char symb2)
{
int size = (char)(symb2 - symb1) + 1;
char[] Arr = new char[size];
for (int k = 1; k < Arr.Length; k++)
{
Arr[0] = symb1;
Arr[k] = (char)(symb1 + k);
}
foreach (char s in Arr)
{
Console.Write("|" + s);
}
Console.WriteLine("|");
}
static void Main()
{
Console.WriteLine("Введите n1");
int n1 = int.Parse(Console.ReadLine());
Console.WriteLine("Введите n2");
int n2 = int.Parse(Console.ReadLine());
Add(n1, n2);
Console.ReadLine();
}
}
Ответы (1 шт):
Забрать один или первый символ из консольного ввода можно например так
char c1 = Console.ReadLine()[0];
Либо так
char c1 = Console.ReadKey().KeyChar;
Console.WriteLine();
С точки зрения надежности логики, второй способ лучше.
Необходимо унифицированное решение вне зависимости от типов данных
string input = Console.ReadLine();
if (int.TryParse(input, out int number))
{
// int number - введено число
}
else if (input.Length > 0)
{
char c = input[0];
// char c - введен символ
}
else
Console.WriteLine("Некорректный ввод");