New Early adopter or innovator? InfoQ has been working on some new features for you. Learn more

C# 7.2 and 8.0 Roadmap

by Jonathan Allen on  Jun 07, 2017

Features are already being lined up for C# 7.2 and 8.0 including nullable reference types and limited multiple inheritance.

An Early Look at C# 7.1: Part 2

by Jonathan Allen on  Jun 06, 2017

Yesterday we looked at Async Main and Default Expressions. Our tour of C# 7.1 continues with the proposals titled Infer Tuple Names and Pattern-matching with Generics.

An Early Look at C# 7.1: Part 1

by Jonathan Allen on  Jun 05, 2017

For the first time since 2003, Microsoft is considering a point release for C#. Currently marked as C# 7.1, the next version of the language is expected to include Async Main, Default Expressions, Infer Tuple Names, and Pattern-matching with Generics.

.NET Futures: Asynchronous Streams

by Jonathan Allen on  May 01, 2017

Since async/await was announced for VB/C#, developers have been asking about an asynchronous version of IEnumerable. But until C# 7 and ValueTask, that was potentially challenging from a performance standpoint.

C# Futures: Relaxed Overrides

by Jonathan Allen on  Apr 26, 2017

A commonly requested feature in .NET is the ability to use covariant return types. An example of this would be overriding “virtual object Clone()” with “override Widget Clone()”. From a type safety perspective, this is perfectly acceptable, but C# doesn’t currently allow it.

C# Futures: Read-Only Local Variables

by Jonathan Allen on  Apr 24, 2017 1

Not too long ago the proposal for read-only local variables was revived. This is a much more modest feature than the read-only references proposal, but the two are complementary.

C# Futures: Read-Only References and Structs

by Jonathan Allen on  Apr 19, 2017 2

In C++ we have a feature known as “const”. This can be applied to parameters so that the caller knows that function will not modify the parameter and/or the object the parameter references. Under this proposal, C# would get something similar.

C# Futures: Nullable Reference Types

by Jonathan Allen on  Apr 17, 2017 2

No, the headline isn’t a typo. One of the new proposals for C# is to assume that all reference variables are non-nullable by default. Under the new syntax, you would need to explicitly indicate when a reference variable is nullable, just as you do for value types.

.NET Futures: Type Classes and Extensions

by Jonathan Allen on  Apr 12, 2017

Another feature being considered for future versions of .NET are type classes. Referred to as “shapes” in the Shapes and Extensions proposal, they would greatly increase the capabilities of .NET generics.

New Language Features in Visual Basic 15

by Jonathan Allen on  Apr 11, 2017

Visual Basic 15 brings with it partial implementations of two important C# features: tuples and ref returns. Neither feature is “complete”, but they do offer enough work-arounds that VB applications can consume C# libraries that make use of these features.

.NET Futures: Multiple Inheritance

by Jonathan Allen on  Apr 10, 2017 2

A controversial new proposal for .NET suggests the introduction of a limited form of multiple inheritance via abstract interfaces. This feature was inspired by Java’s default methods.

New JEP Would Simplify Java Type Variance

by Abraham Marín Pérez on  Jan 24, 2017

A new JEP Candidate proposes to facilitate the handling of type variance in Java. The new proposal, potentially targeting Java 10, would add a means for specifying the default variance in the definition of generic types, different to the current style of indicating it through wildcards at instantiation. This proposal is not a replacement for wildcards, but rather a way to reduce the need for them.

Don Syme Presents F# Design Principles at .Net Fringe

by Pierre-Luc Maheu on  Sep 13, 2016

Don Syme, creator of F#, presented at .Net Fringe 2016 an assessment of the current status of F#. He also commented on the duality that exists in F#, a functional language created on a runtime built for object oriented languages.

Anders Hejlsberg Explains Modern Compiler Construction

by Pierre-Luc Maheu on  May 18, 2016

The main reference in compiler construction, Compiler: Principles, Techniques, and Tools, also know as the Dragon Book, was first published in 1986. Anders Hejlsberg, known for his work on Turbo Pascal, Delphi, C# and TypeScript, explains in a Channel 9 interview how compiler construction today is different from how it was done 30 years ago.

Debate: Adding Non-nullable References to C#

by Pierre-Luc Maheu on  Sep 28, 2015 4

The recent proposal to add non-nullable references to C# by Microsoft’s Mads Togersen sparked quite a debate in the .NET community. The reactions were diverse, ranging from praise to preferring status quo.