.NET 4.x Реально ли сделать обобщенный ввод - C#
Формулировка задачи:
Если вкратце, то мне надоело писать зацикленный ввод с проверками на корректность(требуют в универе), писать отдельную функцию для каждого типа - явно не вариант. Попытался сделать обобщенную функцию, но напоролся на ограниченность шарповских обобщений. Хотелось бы получить нечто вроде такого:
using System; class Program { static void Main() { int x = prompt<int>("Введите целое число : "); } static T prompt<T>(string str) where T : int, uint, double, float, decimal, short, ushort, long, ulong { label: try { Console.Write(str); decimal res = decimal.Parse(Console.ReadLine()); return (T)res; //compile error } catch { goto label; } } }
Решение задачи: «.NET 4.x Реально ли сделать обобщенный ввод»
textual
Листинг программы
static void Main() { int x = Prompt<int>("Введите целое число : "); double d = Prompt<double>("Ololo^ "); } static T Prompt<T>(string str) where T : struct { label: try { Console.Write(str); var value = Console.ReadLine(); return (T)Convert.ChangeType(value, typeof(T)); ; } catch { goto label; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д