Проверка на ввод конкретного типа данных

Есть метод проверяющий, чтобы пользователь ввёл число только типа int. Можно ли сделать универсальную функцию на подобие этой, в которую передаётся тип переменной, например в строковом виде ("int", "float", "str" и т.п) и данная функция проверяла на ввод и возвращала указанный тип.

Проблема в том, что не знаю как функция может вернуть универсальный тип данных (int,str,float и т.п), а не только конкретный как в примере ниже.

public static int IntGetInput()
{
    try
    {
        Console.WriteLine("Input int variable...");
        int input = int.Parse(Console.ReadLine());
        return input;
    }
    catch (Exception exc)
    {
        Console.WriteLine(exc.Message);
        return IntGetInput();
    }
}

Ответы (1 шт):

Автор решения: Alexander Petrov

Можно использовать метод Convert.ChangeType.

static T GetInput<T>()
{
    Type type = typeof(T);
    Console.Write($"Input {type.Name} variable: ");
    string? value = Console.ReadLine();
    return (T)Convert.ChangeType(value, type);
}

Но он не со всеми типами работает.

Console.WriteLine(GetInput<string>());
Console.WriteLine(GetInput<int>());
Console.WriteLine(GetInput<float>());

Добавьте обработку исключений, где необходимо.

→ Ссылка