Вы должны преобразовать тип вашего возвращаемого значения метода в тип Generic, который вы передаете методу во время вызова.
public static T values<T>()
{
Random random = new Random();
int number = random.Next(1, 4);
return (T)Convert.ChangeType(number, typeof(T));
}
Вам необходимо передать тип, который можно преобразовать в тип для значениявы вернетесь через этот метод.
Если вы хотите вернуть значение, которое не может быть преобразовано в тип к передаваемому вами универсальному типу, вам, возможно, придется изменить код или убедиться, что вы передаете тип, который может быть преобразован для возвращаемого значения метода.Таким образом, этот подход не рекомендуется.