Skip to content

Instantly share code, notes, and snippets.

@realazaber
Created August 19, 2025 10:27
Show Gist options
  • Select an option

  • Save realazaber/4c01e16bee582168a7d1e954bd4179a5 to your computer and use it in GitHub Desktop.

Select an option

Save realazaber/4c01e16bee582168a7d1e954bd4179a5 to your computer and use it in GitHub Desktop.
My custom implementation of a Result class to use in C# instead of Exceptions.
public class Result
{
public bool IsSuccess { get; }
public string Message { get; }
protected Result(bool successful, string message)
{
IsSuccess = successful;
Message = message;
}
public static Result Success(string message) => new Result(true, message);
public static Result Failure(string message) => new Result(false, message);
}
public class Result<T> : Result
{
public T Value { get; }
private Result(bool successful, string message, T value = default!)
: base(successful, message)
{
Value = value!;
}
public static Result<T> Success(T value, string message)
=> new Result<T>(true, message, value);
public static new Result<T> Failure(string message)
=> new Result<T>(false, message);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment