An Option type for C#