Na sua opinião o que é mais legível: ?? (operador) ou uso de if

Eu tenho um método que receberá umstring, mas antes que eu possa trabalhar com isso, eu tenho que convertê-lo paraint. Às vezes pode sernull e eu tenho que mudar seu valor para"0". Hoje eu tenho:

public void doSomeWork(string value)
{
   int SomeValue = int.Parse(value ?? "0"); //it can throw an exception(i know)
}

Eu fiz isso, mas meu chefe me pediu para refatorar:

public void doSomeWork(string value)
{
    if(string.IsNullOrEmpty(value))
        value = "0";
    int SomeValue = int.Parse(value);
}

na sua opinião qual é a melhor opção?

questionAnswers(13)

yourAnswerToTheQuestion