Ошибка: Оператор == не может применяться к операндам Т и Т - C#
Формулировка задачи:
В стиле обобщенного программирования хотел сделать контейнеры вектора и связного списка. Для ясности замечу, что вектор у меня сработал нормально. Как начал писать связный список( в другом классе, в том же пространстве имен), класс вектора начал ругаться на то место, где я сравниваю значения обобщенного типа. А именно:
Я так понял, что ошибка возникла из-за того, что я начал описывать класс связного списка, в котором не определена операция сравнения, однако, перегрузка оператора в классе связного списка привела к той же ошибке:
Не судите строго, может, я чего и не уловил, но в свою защиту скажу, что недавно всерьез принялся изучать c# =)
//Исключение элементов из массива public void Exclude(T val) { int k = 0; for (int i = 0; i < mPos-k; i++) { while (mVal [i + k] == val) //<- Вот здесь k++; mVal [i] = mVal [i + k]; } mPos = mPos - k; }
public class MyListElement<T> { public T mVal; public MyListElement<T> mNext; public MyListElement( T val, MyListElement<T> next) { mVal = val; mNext = next; } public static MyListElement<T> operator ==(MyListElement<T> c1, MyListElement<T> c2) { return (c1.mVal==c2.mVal); // Тут } public static MyListElement<T> operator !=(MyListElement<T> c1, MyListElement<T> c2) { return (c1.mVal!=c2.mVal); // И тут. } }
Решение задачи: «Ошибка: Оператор == не может применяться к операндам Т и Т»
textual
Листинг программы
where T : IEquatable<T>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д