« CSharp 7.1 » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
(Page créée avec « Category:CSharp = [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.1/async-main Async Main] = <filebox fn='Program.cs'> // the fol… »)
 
Aucun résumé des modifications
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
= [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.1/async-main Async Main] =
= [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.1/async-main Async Main] =
<filebox fn='Program.cs'>
<filebox fn='Program.cs'>
// the following signatures are now allowed entrypoints:
// the following methods are now allowed entrypoints:
static Task Main() { }
static async Task Main() { }
static Task<int> Main() { }
static async Task Main(string[] args) { }
static Task Main(string[]) { }
static async Task<int> Main() { }
static Task<int> Main(string[]) { }
static async Task<int> Main(string[] args) { }
</filebox>
</filebox>
= [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.1/target-typed-default Target-typed "default" literal] =
<kode lang='cs'>
int i = default(int);
// is replaced by (its type is inferred by target-typing instead)
int i = default;
</kode>
= [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.1/infer-tuple-names Infer tuple names] =
<kode lang='cs'>
list.Select(x => (P1: x.P1, P2: x.P2));
// is replaced by (tuple names are inferred)
list.Select(x => (x.P1, x.P2));
</kode>
= [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.1/generics-pattern-match Pattern-matching with generics] =
[[CSharp_7#Pattern_matching|C# 7.0 Pattern matching]]

Dernière version du 15 décembre 2021 à 16:50

Async Main

Program.cs
// the following methods are now allowed entrypoints:
static async Task Main() { }
static async Task Main(string[] args) { }
static async Task<int> Main() { }
static async Task<int> Main(string[] args) { }

Target-typed "default" literal

Cs.svg
int i = default(int);
// is replaced by (its type is inferred by target-typing instead)
int i = default;

Infer tuple names

Cs.svg
list.Select(x => (P1: x.P1, P2: x.P2));
// is replaced by (tuple names are inferred)
list.Select(x => (x.P1, x.P2));

Pattern-matching with generics

C# 7.0 Pattern matching