InfoQ Homepage C# Content on InfoQ
-
Infer# Brings Facebook's Infer Static Analyzer to C# and .NET
With Infer#, Microsoft extends the choice of static analyzers available within the .NET ecosystem by bringing Facebook Infer's inter-procedural static analysis capabilities to it.
-
Microsoft .NET Conf 2020: .NET 5, C# 9.0, F# 5.0, and More
At the 2020 edition of .NET Conf, streamed online last week, Microsoft released the much-awaited .NET 5, along with new major .NET language versions (C# 9 and F# 5), ASP.NET 5, and EF Core 5.0. New versions of Visual Studio 2019 were also released, with support for .NET 5 and improved Git tooling. The event also featured sessions covering tools and frameworks such as Blazor and Project Tye.
-
The Resurgence of Functional Programming - Highlights from QCon Plus
The Resurgence of Functional Programming track at QCon Plus featured several experts describing how functional programming makes developing software a joyful experience. They also told why and how object-oriented languages such as C# and Java are evolving by becoming more functional.
-
C# 9: Minor Improvements for Lambdas
Lambdas will be getting a small upgrade in C# 9 with two new features: discard parameters and static anonymous functions. Neither will change the way code is written, but they do clarify the developer’s intent.
-
C# 9: Range Operators in Switch Constructs and Pattern-Matching Expressions
Since C# was first introduced, developers have complained about the lack of a range operator in switch constructs. This made switches far less useful in C# than they were in VB. As part of the pattern-matching enhancements for C# 9, this limitation has been addressed.
-
C# 9: New `and`, `or`, and `not` Keywords for Pattern Matching
Though it may sound like our occasional April Fools Day joke, C# 9 is looking to add `and`, `or`, and `not` to its list of keywords. Specifically, for use in pattern matching.
-
C# Futures: Null Check Operator
In the June 24th C# Language Design Meeting, Microsoft made a subtle change to the parameter null checking syntax. By changing it from “Type parameterName!” to “Type parameterName!!” they effectively introduced a new ‘null check operator’.
-
C# 9: Type Inference for the New Keyword
In many situations, there is only one possible type allowed in a given place. And yet C# still requires you to explicitly list the type. Now that the Target-typed `new` expression proposal has been adopted into C# 9, such boilerplate code will no longer be necessary.
-
C# 9: Simplified Parameter Null Validation
Simplified parameter null validation has been promoted to a C# 9 feature. This narrowly tailored feature reduces the amount of code needed to validate non-null parameters to a single character in the function signature.
-
C# 9: Partial Method Enhancements for Source Generators
Source Generators in C# 9 will allow compiler-extensions to inspect code and then inject additional source code at compile-time. This injected code is then incorporated into the very same assembly that was being compiled. In order to facilitate this capability, Microsoft is removing most of the restrictions on Partial Methods.
-
C# 9: towards First Class Support for Scripting
One of the defining characteristics of “scripting” languages is they don’t need any boilerplate. The very first line of a file can be the declarations and statements you would normally see inside a function. In the updated Top-level statements proposal, this capability is planned for C# 9.
-
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.