If the type system is not powerful enough it will be extra works just to get around the inadequacy..
If c# have some support of sum type and structural subtyping like Python I will be using that... I mean even Haskell does not have proper records.. Python is not definitely the best, but quite nice among the current options.