Return Early Comparison

Using Early Returns

  1. private Boolean IsValidMailMessage(MailMessage message)
  2. {
  3. if (message == null)
  4. return false;
  5.  
  6. if (message.From == null)
  7. return false;
  8. if (!message.From.Address.Contains('@'))
  9. return false;
  10.  
  11. if (message.To == null)
  12. return false;
  13. if (message.To.Count == 0)
  14. return false;
  15. foreach (var item in message.To)
  16. {
  17. if (!item.Address.Contains('@'))
  18. return false;
  19. }
  20.  
  21. if (message.Body == null)
  22. return false;
  23.  
  24. if (String.IsNullOrWhiteSpace(message.Body))
  25. return false;
  26. return true;
  27. }

Using a Single Return

  1. private Boolean IsValidMailMessage(MailMessage message)
  2. {
  3. Boolean isValid = true;
  4. if (message != null)
  5. {
  6. if (message.From != null)
  7. {
  8. if (!message.From.Address.Contains('@'))
  9. isValid = false;
  10. }
  11. else
  12. {
  13. isValid = false;
  14. }
  15.  
  16. if (message.To != null)
  17. {
  18. if (message.To.Count == 0)
  19. isValid = false;
  20. foreach (var item in message.To)
  21. {
  22. if (!item.Address.Contains('@'))
  23. isValid = false;
  24. }
  25. }
  26. else
  27. {
  28. isValid = false;
  29. }
  30.  
  31. if (message.Body != null)
  32. {
  33. if (String.IsNullOrWhiteSpace(message.Body))
  34. isValid = false;
  35. }
  36. else
  37. {
  38. isValid = false;
  39. }
  40. }
  41. else
  42. {
  43. isValid = false;
  44. }
  45. return isValid;
  46. }