What's Coming to C#?

Play What's Coming to C#?
Sign in to queue

Description

Over the last year we shipped point releases of C#, full of small but useful language features. Mads will recap some some of these, before turning to the big things we have in store for the future: Nullable reference types, recursive patterns, asynchronous streams and more. 

Day:

1

Code:

S103

Embed

Download

The Discussion

  • User profile image
    licjapodaca

    Great new features on C# current version... nice presentation...

  • User profile image
    dcuccia

    Great talk and great work. And...oooh, tell me more about GADTs and GPUs! How far can we Span, man? Per my comment at BUILD last year, "How about C#/AMP?" 

  • User profile image
    erddys

    Great new features... I have a concern. What happens if I have two interfaces with the an equal implemented method, and a class that implement those interfaces? How the conflict is resolved? Good presentation, thanks

  • User profile image
    Marcos

    Great presentation and awesome work in C# Mads !!
    Thanks !!

  • User profile image
    AceHack

    Awesome, can't wait for the next Lang.Next!!

  • User profile image
    debasis

    Awesome. Great presentations & also great features in the new version. awaits for the final release.

  • User profile image
    BMS

    I feel all the ref business is just C pointers rebranded, takes away from the simplicity and elegance of C# in my opinion.

  • User profile image
    RaymondM

    So we have basically tried our best to avoid C/C++ pointers for years when using C# and now they are back. I must say I love it because the IDE is now kind enough to warn us when dereferencing or using the pointers incorrectly. NICE WORK!!!

  • User profile image
    KVG

    Hello! For what you did implementation for method of interface, could you explain this, please???
    Abstract class can do the same thing through virtual key word to overload base implementation of a method!

  • User profile image
    popochacha20

    I'm waiting for new feature update. Thanks a lot!

  • User profile image
    sunnymukher​jee

    Great presentation!  Thank you!

  • User profile image
    balugili

    Thank you Mads for your excellent presentation.
    I have write a few articles about the new C# 8 features and I have handled them in depth:

    https://www.infoq.com/articles/default-interface-methods-cs8

    https://www.infoq.com/articles/cs8-ranges-and-recursive-patterns

    https://www.infoq.com/articles/Async-Streams

  • User profile image
    Michael

    26:30 NRT bases such as these are still, I contend, a dumbed down, contrived, academic "example". Anyone can write code like this to intentionally break over null, or virtually any other feature for which they have a general distaste. But few developers indeed exhibit the critical thinking skills to effectively reason about those conditions, let alone exercising the operators that already exist in the language to help deal with those conditions. I will say this, I am nobody's yes man, I do not pull water, I do not tow the line, for the draconian NRT agenda. Personally, I think someone got burned by a NRE somewhere along the way, and rather than deal with THAT circumstance, decided that the community looked more like a nail in order to swing their hammer. Where we stand today with that is an almost blinding effect to critical thinking skills where so-called "NRTs" are concerned. You see it working its way out in the JSON serialization almost to a meeting, where null is a real, first class thing, and should be accommodated; you see it in the framework design reviews concerning annotations, with a virtually bottomless pit of calories being wasted on the issue; and on from there. Now, to be clear, I'm not saying that we should be careless about treatment about nulls, but what I am saying is that the tools already existed to deal with that, starting with my critical thinking skills and those of my business, team, colleagues, etc. But to introduce a language level feature, albeit one must "opt in" today, is overkill. Worst case, I think that a Code Analyzer, possibly even a Code Fixer, if you prefer, is the better shape for a package such as this, which folks may subscribe to in their private assets; contrasted with forcing the issue on development teams that have consciously decided not to opt in. Heck, with a proper Code Analyzer, that would even force your NRT team to inspect the issue at a token level in order to 1) warn with adequate messaging and 2) possibly offer resolutions.

Add Your 2 Cents