ktr said:
I obviously don't expect all of this, but it would be nice.
  • Extension Properties 
  • Mixins
  • Language support for tuple types:
    public (int, string) GetSomeTuple() { /* ... */ }
    Perhaps this could even extend to tuples with named properties (much like anonymous types):
    public (int Age, string Name) GetSomeTuple() { /* .. */ }
  • Better language support for function types (unlimited args, named args)
  • More type inference! this leads to my final request...
  • Better support for anonymous types (shouldn't be limited to only a local scope):
    public anonymous GetSomeObject() { return new { Feature = "Anonymous Types", Version = 2 } }

    Still strongly typed, just a lot simpler.

It seems a lot of what you desire is in F#, why don't you use that instead? The type inference in the language is sublime.

 

let x = y 
let apples = oranges 

 

I now use the var keyword in C# like its running out of fashion. In visual basic you have

 

Dim anInt as Integer 

 

which is far more elegant than

 

MyClass myClass = new MyClass();