Idiomatic option types for C#