Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 13:45   #1
anlu
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 34
Счастье Математические операции с обобщенными типами

Всем доброго времени суток!
Вот столкнулся с такой проблемой, я создаю обобщенный класс, где мой условный тип в будущем будет либо int, либо double, а какие либо математические операции с переменными етого типа отказывается делать, мол не знаю что это за тип и можно ли его слаживать и все такое! вот приведу простенький пример:
Код:
class A<T>
{
      public void Blablabla()
      {
           T s;
           s+=2;
      }
}
И вот тут когда к S прибовляю 2 выбивает ошибку:
Cannot implicitly convert type 'int' to 'T'
Помогите пожалуйста)
anlu вне форума Ответить с цитированием
Старый 13.03.2012, 18:53   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Правильно ругается, а что мешает сразу тип задать?
Hollander вне форума Ответить с цитированием
Старый 14.03.2012, 13:23   #3
anlu
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 34
По умолчанию

Это я привёл простой пример, а насамом деле нужно что бы класс принимал массив, но какого он типа не известно! И далее делал различные вычисления с массивом.
Так что не решить данной проблемы?
anlu вне форума Ответить с цитированием
Старый 14.03.2012, 13:36   #4
Kostya33
 
Регистрация: 13.03.2012
Сообщений: 3
По умолчанию

получаете тип через typeof(T), дальше делаете switch
приводите к нужному типу и работаете
Kostya33 вне форума Ответить с цитированием
Старый 14.03.2012, 14:02   #5
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Создай класс в котором будет выбираться тип данных в конструкторе допустим

class IntDouble
{
}

Перегрузи операторы сложения вычитания и т.д. в нем. И в классе "А" используй
Guy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Математические операции с шестнадцатиричными числами. Как? prw07 Паскаль, Turbo Pascal, PascalABC.NET 1 06.09.2010 10:17
FASM. Ввод чисел и математические операции. Lamo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 17.01.2010 20:38
Операции с разными типами чисел (real c integer не умножается!) uvamosk Помощь студентам 10 21.05.2009 21:14
Математические операции Juggernaut Общие вопросы Delphi 6 22.04.2009 10:34
Математические операции Pascal Gonzo Помощь студентам 5 19.03.2009 13:49