Yes, I like a lot of those things.
Because Java is missing them and needs it for performance:
Especially for reducing a bit of boilerplate and increasing readability:
Default and named parameters
All exceptions are unchecked
Things I'm definitely not keen upon:
The coalesce operator. Co-opting ascii symbols to mean fancy new things is one of the worst aspects of many language, especially as they all like to mean subtly different things. I'm not even a great fan of ? : but I've used it for so many years before that I've gotten used to it.
var. For various reasons but mostly because it hides stuff I like to know.
Properties. Have a dot operator already. If I mysteriously need to munge values before getting and setting there's a perfectly good way to do it already - with a method.
Nullable types. Daft idea. We have reference types to do that. Make a reference to a value type. Job done.
Operator overloading. Again with the ascii symbols. I'm in favour of a version that allows normal method identifiers though.
readonly and const (strangely Java has coped without either of these for its entire existence and we're all still alive)
Things I'm still not sure about:
Extension methods. Seem like a great idea but I started to get an uneasy feeling about them after a while.
Stuff I know nothing about:
Stuff I don't care about:
Type erasure. The number of times I need to use reflection in ordinary programming is essentially zero unless I'm doing hax or not doing "ordinary programming"
Things that are in Java which are excellent ideas:
the <> operator, which removes large tracts of crappy redundant typing
static import, ditto
lambda syntax, ditto, plus bells and whistles
final, which works in a lovely consistent way
for instead of foreach. Consistent use of keywords!
Things that could do with adding to Java other than those features mentioned that are nifty about C#:
The elvis operator. I take back what I said about ascii
More type inference and implicit casting
The ability to specify byte and short literals with suffixes a la longs (dunno if C# has these)