Использование обобщенных методов типа generics в c#

122
10 августа 2019, 10:50

прошу помочь разобраться в использовании обобщенных методов. Проблема в следующем: я проверяю введенное значение, чтобы оно было больше нуля, пытаюсь это сделать следующим методом:

public static void CheckGreaterZero<T> (ref T parametr)
        {
            try
            {
                if (parametr < 0)
                {
                    throw new Exception
                        ("Данное значение не может быть отрицательным!\n" +
                               "Программа будет завершена.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Ошибка: " + e.Message);
                Console.ReadKey();
                Environment.Exit(0);
            }
        }

но получается ошибка "Оператор < нельзя применить к операнду типа T и int". Для меня важен универсальный параметр, т.к. данным методом я буду проверять значения int и double, можно ли как-то поправить данную ошибку и корректно написать данный метод? Заранее благодарен за любую помощь.

Answer 1

Вот так сделай

 class Program
        {
            static void Main(string[] args)
            {
                var g = 7.6;
                CheckGreaterZero(ref g);
                Console.ReadKey();
            }
            public static void CheckGreaterZero<T>(ref T parametr)
            {
                if (typeof(T) == Type.GetType("System.Double"))
                {
                    Console.WriteLine("System.Double");
                }
                if (typeof(T) == Type.GetType("System.Int32"))
                {
                    Console.WriteLine("System.Int32");
                }
            }
        }
READ ALSO
Как реализовать Socks5 сервер?

Как реализовать Socks5 сервер?

Не могу найти документацию как реализовать Sosks5 сервер, нашел много теории по этой теме, но нигде нету информации какими библиотеками это...

125
Сравнение файлов папке и в документе

Сравнение файлов папке и в документе

Есть такая проблемаИмеется файл

93
Получить имя исполняемого приложения [закрыт]

Получить имя исполняемого приложения [закрыт]

Пишу небольшое приложение которое работает с названием файла, но возникла сложность я не могу найти название исполняемого файла, многое...

104
SQL integration services выполнение сценария C#

SQL integration services выполнение сценария C#

Пытаюсь освоить SSISВ проекте Integration services добавить сценарий на C#, который принимает на вход строку,и выдает результат

95