BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage C# Content on InfoQ

  • Source Generators Will Enable Compile-Time Metaprogramming in C# 9

    Source generators are a new feature of the C# compiler that enables inspecting user code using compiler-generated metadata and generating additional source files to be compiled along with the rest of the program.

  • C# Static Analysis Tool Roslynator.Analyzers Now Has over 500 Ways to Improve Code

    The new version 2.3.1 of the Roslynator.Analyzers package brings the number of analyzers, refactorings and fixes to over 500. Roslynator uses the open-source Roslyn .NET Compiler Platform to perform static analysis on your C# code. This analysis drives your IDE to display hints and actions to improve your code.

  • C# Futures: Primary Constructors

    We last mentioned primary constructors in 2014 when it was removed from the candidate list for C# 6 and VB 12. Late last year, Primary Constructors reappeared as a candidate for C# 9.

  • C# Futures: Covariant Return Types

    A frequent API design problem is the inability to use a more specific return type when overriding a method. Proposal 49, which is now a C# 9 candidate, seeks to correct this issue.

  • C# Futures: Simplified Parameter Null Validation

    At first glance, proposal #2145 seems like a logical extension to C# 8’s Nullable Reference Types feature. The basic idea is developers would no longer need to explicitly add argument null checks to methods that accept non-nullable parameters. However, this has become quite contentious.

  • C# 9 Proposals: Module Initializers

    The module initializer proposal has been promoted to C# 9 candidacy. This would act like a static constructor in C#, but rather than applying to one class it applies to the entire assembly.

  • Stateful Programming Models in Serverless Functions: Chris Gillum at QCon San Francisco

    Chris Gillum, principal engineering manager at Microsoft, presented at QCon San Francisco on Serverless Programming Models in Azure Functions. In his presentation, he discussed two stateful programming models, workflow and actors on Azure Functions - Microsoft’s implementation of serverless compute.

  • A Proposal for IDisposable and Static Analysis: DisposeUnused Attribute

    When .NET was first created, there was uncertainty about how IDisposable should be used. As a result, IDisposable was applied in an overly aggressive fashion with many categories of classes requiring empty Dispose methods. This has led to problems with static analysis tools that cannot separate real cases of missing Dispose calls from false positives.

  • Microsoft Releases C# 8.0

    Last week Microsoft announced the official availability of C# 8.0 as part of the .NET Core 3.0 release, simultaneously at .NET Conf 2019 and on their development blog. The new language features include nullable reference types, asynchronous streams, default interface members, and new code patterns. All new features are supported in Visual Studio 2019.

  • Preview of C# 8.x

    Even though C# 8.0 is still months away, planning has begun for C# 8.x. Some of these features are new, while others were previously considered for C# 8.

  • C# 8 Nullable Reference Types Update

    Work continues on nullable refence types for C# 8, revealing edge cases that need to be addressed before the final release and new opportunities for reducing the amount of boilerplate developers have to write.

  • C# 8 Pattern Matching Enhancements

    C# 7 laid the groundwork for pattern matching, but a lot of features had to be left on the cutting room floor. With the extra time C# 8 needs, many of these are being picked up.

  • C# 8 Nullable Value Type Enhancements

    First introduced in .NET 2, very little has changed for Nullable<T> over the last decade and a half, but that looks like it is about to change. Much of the work going into supporting nullable reference types in C# 8 may be applied to nullable value types.

  • C# Default Interface Methods Update

    As support for Default Interface Methods gets closer to completion, potential issues are raised. While much has been accomplished, this is a complex feature and many of the specifics haven’t been settled yet.

  • C# 8 More Small Features

    Though C# 8 is supposed to be released this year and the roadmap for C# 8.x and 9 are beginning to be formed, Microsoft is continuing to approve features for the next release.

BT