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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2012, 19:22   #1
Russalert
 
Регистрация: 07.03.2012
Сообщений: 3
Печаль Обобщенные типы. Проблема со сравнением

Доброго времени суток, появилась такая проблема при работе с Generic в C#.
При сравнении двух переменных с типом "K" (параметр описываемый при инициализации объекта обобщенного класса) выскакивает ошибка, о том что оператор "==" не может применяться к операндам типа "К".
Код:
public bool ExistsKey(K key)
        {
            if (isEmpty)
            {
                MessageBox.Show("Массив пуст");
                return false;
            }
            else
            {
                for (int i = 0; i < Count - 1; i++)
                {
                    if (array[i].Key == key) // ошибка тут
                    {
                        return true;
                    }
                }
            }
        }
PS: Кто знает как с этим бороться или обойти это, подскажите, не могу дальше продвинуться.

UPD: Все классы ограниченны
Код:
where K:struct

Последний раз редактировалось Russalert; 07.03.2012 в 20:08.
Russalert вне форума Ответить с цитированием
Старый 07.03.2012, 20:41   #2
Russalert
 
Регистрация: 07.03.2012
Сообщений: 3
По умолчанию

Все, теперь 100% решение найдено
Код:
if (array[i].Key.Equals(key))

Последний раз редактировалось Russalert; 07.03.2012 в 21:02.
Russalert вне форума Ответить с цитированием
Старый 08.03.2012, 10:43   #3
newclaus
Пользователь
 
Регистрация: 08.03.2012
Сообщений: 10
По умолчанию

Можно также использовать перегрузку оператора ==
newclaus вне форума Ответить с цитированием
Старый 08.03.2012, 10:50   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Можно также использовать перегрузку оператора ==
обощение и перегрузка вещи плохо совместимые.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.03.2012, 02:56   #5
Exeron
Новичок
Джуниор
 
Регистрация: 13.03.2012
Сообщений: 5
По умолчанию

Метод Equals в данном случае - хорошее решение
Exeron вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с программой в NASM. Типы данных Илья555 Помощь студентам 0 27.04.2011 17:17
Обобщенные классы в С++ Ramil1991 Общие вопросы C/C++ 27 23.01.2011 05:52
компоновка двух xls сравнением Deceased Microsoft Office Excel 6 19.10.2010 20:24
Запарка со сравнением текста BRcr Microsoft Office Excel 12 12.02.2010 15:48
Не могу разобраться с сравнением 2-х двумерных масивов на совпадения текста tj_pablo Общие вопросы C/C++ 0 11.03.2009 22:21