Хотя мне лично очень не нравится иметь несколько возвращаемых операторов в функции, в соответствии с защитным программированием, которое я видел, вы перехватываете состояние ошибки и выходите и пропускаете что-либо еще:
if(lastSelection == null)
{
MessageBox.Show("No Selection Made");
return;
}
lastSelection.changeColor();
Трудно сказать, как бы я делал это в своей работе, не видя всей функции, к которой он относится.