Использование формы для получения ввода от пользователя для преобразования его в объект (ToDo). Информация передается в этот самореферентный класс (ToDo) для создания объекта, а затем передается другому классу Queue.
Однако проблема в том, что мне нужно сравнить следующий переданный объект с другими предыдущими объектами. Если объект имеет такое же имя, не передавайте информацию в класс Queue.
Но из моего кода метод Equals даже не выполняется. Просто интересно, что я делаю неправильно здесь.
public class ToDo : IEquatable<ToDo>
{
private string _name;
private string _priority;
private ToDo _next;
private ToDo _previous;
Queue queue = new Queue();
public ToDo(string name, string priority)
{
_name = name;
_priority = priority;
_next = null;
_previous = null;
queue.Enqueue(this);
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public string Priority
{
get { return _priority; }
set { _priority = value; }
}
public ToDo Next
{
get { return _next; }
set { _next = value; }
}
public ToDo Previous
{
get { return _previous; }
set { _previous = value; }
}
public bool Equals(ToDo other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return other.Name.Equals(Name);
}
public override bool Equals(object obj)
{
if (Object.ReferenceEquals(null, obj))
return false;
if (Object.ReferenceEquals(this, obj))
return true;
if (this.GetType() != obj.GetType())
return false;
return this.Equals(obj as ToDo);
}
public override int GetHashCode()
{
return this.Name.GetHashCode();
}
}