Я работаю над небольшим проектом в свободное время, но меня не устраивает то, как я обрабатываю текущие / предыдущие «значения» (в моем случае значения - это класс)
Кратко опишу мой topi c о том, что у меня есть сетка, содержащая список ячеек. Когда я нахожу или нажимаю на ячейку, я раскрашиваю ячейку соответствующим образом. Но, конечно, когда я больше не нахожу курсор на ячейку или не выбираю другую ячейку, мне нужно закрасить новую ячейку и нарисовать предыдущую, как это было изначально.
Итак, я пришел к этому:
public class PreviousCurrent<T> where T : class
{
T current;
public T Previous { get; set; }
public T Current
{
get => current;
set
{
if(value == current)
return;
if (Previous != null)
{
Previous = current;
current = value;
}
else
current = value;
}
}
internal PreviousCurrent(T previous, T current)
{
Previous = previous;
Current = current;
}
public static PreviousCurrent<T> Empty => new PreviousCurrent<T>(null, null);
}
Это работает, но мне было интересно, есть ли более простой / элегантный способ справиться с такой ситуацией?
Любая конструктивная помощь / критика приветствуется!
Спасибо за советы!