BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage C# 7 Content on InfoQ

  • Performance of Structs in C# 7.2

    The C# compiler, under some circumstances involving readonly, creates defensive copies of a struct. While this issue is well known and documented, it’s worth revisiting as it’s tied to several features of C# 7.2. The in and ref readonly keywords make occurrences of the issue more frequent, while readonly structs offer a way to fix it.

  • New Features in C# 7.3

    Though a comparatively minor release, C# 7.3 addresses some long outstanding complaints from C# 1 and 2 such as overload resolution and generic constraints that work with enums and delegates.

  • Catching up with C# 7.1 and C# 7.2

    Back in August, C# 7.1 was quietly released along with Visual Studio 15.3, but it’s not quite ready. In this report we’ll look at a subtle compiler bug and what’s next in store for the soon to be released C# 7.2.

  • Systems Programming in C#

    Although the definition of system programming is fuzzy, it can be described as having to think at the bit, byte, instruction or CPU cycle level. Systems programming also implies demanding performance and reliability requirements. Joe Duffy, engineering director at Microsoft, presented strategies for system programming in C# at QCon New York. He also discusses pitfalls and how to mitigate them.

  • Advanced Pattern Matching Features Removed From C# 7

    Advanced pattern matching features that were originally expected to be present in C# 7 have been recently excluded from the future branch and will not make it into the next version of the language.

  • Early View of C# 7 with Mads Torgersen

    Seth Juarez, of Channel 9, interviews Mads Torgersen, product manager of C#, about the development of the next version of the C# language, codenamed C# 7. Alongside a few other features, three major ones are described: pattern matching, tuple syntax and nullable references.

  • Debate: Adding Non-nullable References to C#

    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.

  • C# Futures: Immutable Classes

    In the last of our C# Futures series, we look at proposal 159, which would add compiler support for immutable classes.

  • C# Futures: Method Contracts

    Continuing our look at the future of C#, we now take a look at Proposal 119. This would add first class compiler and syntax support for method-level contracts.

  • C# Futures: Immutable Variables

    In C#, the readonly keyword can only be used at the field level. Under proposal 115, Readonly for Locals and Parameters, this would be extended to cover a many more scenarios.

  • C# Futures: Closure Annotations

    Though on the “Some Interest” list, the next proposal is very controversial. The basic premise for the Lambda Capture Lists proposal is that it would allow more control over how variables are captured in closures.

  • C# Futures: Extension Properties and More

    The next proposal in our C# Futures series considers the possibility of offering extension fields. This in turn would allow for extension properties and extension events.

  • C# Futures: Asynchronous Sequences

    The async/await syntax in C# was well received, but now developers are asking for more. Specifically, they want to be able to return more than one value from their asynchronous function using a “yield return” like syntax. This capability is being referred to as “asynchronous sequences” in a new proposal for C# 7.

  • C# Futures: Managed Pointers

    A big emphasis for many developers, especially those writing games or working on pure number crunching, is raw performance. One way to get more performance out of C# is to avoid allocating memory without having to copy structs instead. The next proposal shows how C# can expose the CLR managed pointer support to do just that.

  • C# Futures: Nullability Tracking

    Probably the most common error type in .NET is the Null Reference Exception. The root cause of this error is C#’s inability to express the concept of non-nullable references, which in turn makes compiler-enforced null checking it too burdensome. To address this problem, there is a proposal for mandatory and explicitly nullable references.

BT