internal class Program { private static void Main() { string s = "123"; int i; if (!int.TryParse(s, out i)) { //error } TryParseReturnObject ret = JohnsTryParse(s); if (!ret.success) { //Error } i = ret.result; } private static TryParseReturnObject JohnsTryParse(string s) { int result; bool success = int.TryParse(s, out result); return new TryParseReturnObject{result = result,success = success}; } } public class TryParseReturnObject { public int result { get; set; } public bool success { get; set; } }