public static void Main()
char[] vals = [ '0', '1', '2', '3', '4', '5', 'a', ' ' ];
var val = ParseToEnum<TestEnum>(v);
Console.WriteLine(val == null ? "[NULL]" : val);
public static TEnum? ParseToEnum<TEnum>(char input)
where TEnum : struct, Enum
if (int.TryParse(input.ToString(), out int val)
&& Enum.IsDefined(typeof(TEnum), val))
return (TEnum)Enum.ToObject(typeof(TEnum), val);