Ошибка: Оператор == не может применяться к операндам Т и Т - C#

Узнай цену своей работы

Формулировка задачи:

В стиле обобщенного программирования хотел сделать контейнеры вектора и связного списка. Для ясности замечу, что вектор у меня сработал нормально. Как начал писать связный список( в другом классе, в том же пространстве имен), класс вектора начал ругаться на то место, где я сравниваю значения обобщенного типа. А именно:
Листинг программы
  1. //Исключение элементов из массива
  2. public void Exclude(T val)
  3. {
  4. int k = 0;
  5. for (int i = 0; i < mPos-k; i++) {
  6. while (mVal [i + k] == val) //<- Вот здесь
  7. k++;
  8. mVal [i] = mVal [i + k];
  9. }
  10. mPos = mPos - k;
  11. }
Я так понял, что ошибка возникла из-за того, что я начал описывать класс связного списка, в котором не определена операция сравнения, однако, перегрузка оператора в классе связного списка привела к той же ошибке:
Листинг программы
  1. public class MyListElement<T>
  2. {
  3. public T mVal;
  4. public MyListElement<T> mNext;
  5. public MyListElement( T val, MyListElement<T> next)
  6. {
  7. mVal = val;
  8. mNext = next;
  9. }
  10. public static MyListElement<T> operator ==(MyListElement<T> c1, MyListElement<T> c2)
  11. {
  12. return (c1.mVal==c2.mVal); // Тут
  13. }
  14. public static MyListElement<T> operator !=(MyListElement<T> c1, MyListElement<T> c2)
  15. {
  16. return (c1.mVal!=c2.mVal); // И тут.
  17. }
  18. }
Не судите строго, может, я чего и не уловил, но в свою защиту скажу, что недавно всерьез принялся изучать c# =)

Решение задачи: «Ошибка: Оператор == не может применяться к операндам Т и Т»

textual
Листинг программы
  1.  where T : IEquatable<T>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы