« Csharp 8 » : différence entre les versions
Apparence
Ligne 35 : | Ligne 35 : | ||
// file is disposed here, at the end of the enclosing scope | // file is disposed here, at the end of the enclosing scope | ||
} | } | ||
</kode> | |||
= Static local function = | |||
<kode lang='cs'> | |||
int x = 5; | |||
int y = 7; | |||
return Add(x, y); | |||
// Can be static because it doesn't access any variables in the enclosing scope | |||
static int Add(int left, int right) => left + right; | |||
</kode> | </kode> | ||
Version du 4 mars 2020 à 15:49
Liens
Switch expression
switch (i)
{
case 1:
return "One";
default:
throw new Exception("Invalid value");
}
i switch
{
1 => "One",
_ => throw new Exception("Invalid value")
};
|
Using declaration
using (var file = new StreamWriter("MyFile.txt"))
{
// some code
} // file is disposed here
void MyMethod()
{
using var file = new StreamWriter("MyFile.txt");
// some code
// file is disposed here, at the end of the enclosing scope
}
|
Static local function
int x = 5;
int y = 7;
return Add(x, y);
// Can be static because it doesn't access any variables in the enclosing scope
static int Add(int left, int right) => left + right;
|
.NET Framework
The C# 8 / .NET Framework combination is not officially supported by Microsoft.
It can be forced by editing the csproj file.
MyProject.csproj |
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<LangVersion>8.0</LangVersion>
|
- default interface members won't work
- ssynchronous streams and indices and ranges will need polyfill nuget package