public int A { get { return _a; } set { _a = value; if (!C.HasValue) C = 3; } }
public int B { get { return _b; } set { _b = value; if (!C.HasValue) C = 4; } }
public int? C { get; set; }
public static void Main()
const string json1 = "{A:1, B:2}";
var foo1 = JsonConvert.DeserializeObject<Foo>(json1);
Console.WriteLine("A=" + foo1.A +", B=" + foo1.B + ", C=" + foo1.C);
const string json2 = "{B:2, A:1}";
var foo2 = JsonConvert.DeserializeObject<Foo>(json2);
Console.WriteLine("A=" + foo2.A +", B=" + foo2.B + ", C=" + foo2.C);