В лучшем случае лучше, чем лучше:
public void SomeMethod(string str)
{
if(string.IsNullOrEmpty(str))
{
throw new ArgumentException("str cannot be null or empty.");
}
// do other stuff
}
или
public void SomeMethod(string str)
{
if(str == null)
{
throw new ArgumentNullException("str");
}
if(str == string.Empty)
{
throw new ArgumentException("str cannot be empty.");
}
// do other stuff
}
Вторая версия кажется более точной, но также более громоздкой, чем первая. Я обычно иду с №1, но решил, что я проверил бы, есть ли аргумент для №2.