Когда использовать IComparable <T> Vs. IComparer <T>

Я пытаюсь понять, какой из этих интерфейсов мне нужно реализовать. По сути, они оба делают одно и то же. Когда я буду использовать одно вместо другого?