Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Future of C Sharp (C#)

55 Aufrufe

Veröffentlicht am

In the 18th edition of Tech Talk Thursday session on (15/06/2017), Uma Maheswaran Manivannan looks into “The Future of C#”. He started with Stack Overflow - most popular & most loved technologies followed by .NET Language Strategy, C#: The road ahead and C# 8.0 (Async streams and disposables, extension everything & Records).

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Future of C Sharp (C#)

  1. 1. 9.1 9.5 19 22.3 28.1 32 34.1 39.7 51.2 62.5 0 10 20 30 40 50 60 70 Ruby TypeScript C C++ PHP Python C# Java SQL JavaScript Percentage Ruby TypeScript C C++ PHP Python C# Java SQL JavaScript
  2. 2. 0 10 20 30 40 50 60 70 80 Clojure Scala C# Elixir Python Go Swift TypeScript Smalltalk Rust Percentage Clojure Scala C# Elixir Python Go Swift TypeScript Smalltalk Rust
  3. 3. C# 1,000,000’s Millions VB F# 100,000’s Hundreds of thousands 10,000’s Tens of thousands
  4. 4. It’s there use it First point release – tiny features Safe efficient low level code Next steps for pattern matching Major features
  5. 5. IAsyncEnumerable<Person> people = database.GetPeopleAsync(); foreach await (var p in people) { … } using await (IAsyncDisposable resource = await store.GetRecordAsync(…)) { … }
  6. 6. extension Enrollee extends Person { // static field static Dictionary<Person, Professor> enrollees = new Dictionary<Person, Professor>(); // instance method public void Enroll(Professor supervisor) { enrollees[this] = supervisor; } // instance property public Professor Supervisor => enrollees.TryGetValue(this, out var supervisor) ? supervisor : null; // static property public static ICollection<Person> Students => enrollees.Keys; // instance constructor public Person(string name, Professor supervisor) : this(name) { this.Enroll(supervisor); } }
  7. 7. class Person : IEquatable<Person> { public string First { get; } public string Last { get; } public Person(string First, string Last) => (this.First, this.Last) = (First, Last); public void Deconstruct(out string First, out string Last) => (First, Last) = (this.First, this.Last); public bool Equals(Person other) => other != null && First == other.First && Last == other.Last; public override bool Equals(object obj) => obj is Person other ? Equals(other) : false; public override int GetHashCode() => GreatHashFunction(First, Last); … } class Person(string First, string Last);

×