title: How to indicate that a method was unsuccessful
body: <p>I have several similar methods, say eg. CalculatePoint(...) and CalculateListOfPoints(...). Occasionally, they may not succeed, and need to indicate this to the caller. For CalculateListOfPoints, which returns a generic List, I could return an empty list and require the caller to check this; however Point is a value type and so I can't return null there.</p>
  
  <p>Ideally I would like the methods to 'look' similar; one solution could be to define them as </p>
  
  <pre><code>public Point CalculatePoint(... out Boolean boSuccess);
  public List&lt;Point&gt; CalculateListOfPoints(... out Boolean boSuccess);
  </code></pre>
  
  <p>or alternatively to return a Point? for CalculatePoint, and return null to indicate failure. That would mean having to cast back to the non-nullable type though, which seems excessive.</p>
  
  <p>Another route would be to return the Boolean boSuccess, have the result (Point or List) as an 'out' parameter, and call them TryToCalculatePoint or something...</p>
  
  <p>What is best practice? </p>
  
  <p>Edit: I do not want to use Exceptions for flow control! Failure is sometimes expected.</p>