More Related Content
PPTX
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会 ODP
PDF
PDF
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング PDF
PPT
PPT
PPTX
C# 8.0 Preview in Visual Studio 2019 (16.0) Similar to C# 7・8 の復習
PDF
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~ PPTX
PPTX
PDF
PPTX
PPTX
PPTX
PPTX
PDF
PPTX
PDF
PPTX
PPTX
C# 7.2 with .NET Core 2.1 PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
More from m ishizaki
PPTX
PPTX
PPTX
Visual Studio を使わず .NET する PPTX
Xamarin で良くやっていたあれを MAUI でする話 PPTX
PPTX
PPTX
Build 2022 / Uno Platform PPTX
PPTX
C# Tokyo コミュニティ説明 202205 版 PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
C# Tokyo コミュニティについて Short 版 PPTX
PPTX
C# Tokyo コミュニティ説明 2021/01/29 版 PPTX
PPTX
C# Tokyo guide 2020/12/25 C# 7・8 の復習
- 1.
/ 24
C# 7・8の復習
1
C# TOKYO オンライン LT 大会
2020年07月29日
石崎 充良
- 2.
/ 24
自己紹介
石崎 充良( @mishi_cs )
Microsoft MVP for Developer Technologies
言語: C# XAML
活動:
・C# もくもく会 (connpass)
・C# Tokyo (connpass)
2
- 3.
- 4.
/ 24
C# 7・8の歴史
C# リリース ターゲット フレームワーク
7 2017/03 .NET Framework
7.1 2017/08 .NET Framework
7.2 2017/11 .NET Framework
7.3 2018/05 .NET Framework
8 2019/09 .NET Core 3.0
4
- 5.
/ 24
C# 7・8の歴史
C# リリース ターゲット フレームワーク
7 2017/03 .NET Framework
7.1 2017/08 .NET Framework
7.2 2017/11 .NET Framework
7.3 2018/05 .NET Framework
8 2019/09 .NET Core 3.0
5
- 6.
/ 24
C# 新機能文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.0 out 変数 ○
タプル ○
破棄 ○
パターン一致 ○
ref ローカル変数と戻り値 ○ ○
ローカル関数 ○
式形式のメンバーの追加 ○
throw 式 ○
一般化された async の戻り値の型 ○
数値リテラルの構文の改善 ○
7.1 async Mainメソッド ○
default リテラル式 ○
推論されたタプル要素の名前 ○
ジェネリック型パラメーターのパターン マッチ ○
7.2 安全で効率的なコードを記述するための手法 ○ ○
末尾以外の名前付き引数 ○
数値リテラルでの先頭のアンダースコア (_) ○
private protected アクセス修飾子 ○
条件付きの ref 式 ○ ○
6
C# 新機能 文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.3 ピン留めを使用せずに fixed フィールドにアクセスできます。 ○
ref ローカル変数を再割り当てできます。 ○ ○
stackalloc 配列で初期化子を使用できます。 ○
パターンをサポートする型と共に fixed ステートメントを使用できます。 ○
追加のジェネリック制約を使用できます。 ○
タプル型を使用して == と != をテストできます。 ○
式の変数をより多くの場所で使用できます。 ○
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 ○
引数が in によって異なる場合のメソッド解決が改善されました。 ○
オーバーロードの解決のあいまいなケースが削減されました。 ○
8.0 読み取り専用メンバー ○
既定のインターフェイス メソッド ○ ○
パターン マッチングの拡張機能 ○
- switch 式 ○
- プロパティのパターン ○
- タプル パターン ○
- 位置指定パターン ○
using 宣言 ○
静的ローカル関数 ○
破棄可能な ref 構造体 ○
Null 許容参照型 ○
非同期ストリーム ○ ○
非同期の破棄可能 ○
インデックスと範囲 ○ ○
null 合体割り当て ○
構築されたアンマネージド型 ○ ○
入れ子になった式の stackalloc ○ ○
verbatim 補間文字列の拡張 ○
全47新機能
出典
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-1
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-2
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7-3
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8
- 7.
- 8.
/ 24
C# 新機能文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.0 out 変数 ○
タプル ○
破棄 ○
パターン一致 ○
ref ローカル変数と戻り値 ○ ○
ローカル関数 ○
式形式のメンバーの追加 ○
throw 式 ○
一般化された async の戻り値の型 ○
数値リテラルの構文の改善 ○
7.1 async Mainメソッド ○
default リテラル式 ○
推論されたタプル要素の名前 ○
ジェネリック型パラメーターのパターン マッチ ○
7.2 安全で効率的なコードを記述するための手法 ○ ○
末尾以外の名前付き引数 ○
数値リテラルでの先頭のアンダースコア (_) ○
private protected アクセス修飾子 ○
条件付きの ref 式 ○ ○
8
C# 新機能 文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.3 ピン留めを使用せずに fixed フィールドにアクセスできます。 ○
ref ローカル変数を再割り当てできます。 ○ ○
stackalloc 配列で初期化子を使用できます。 ○
パターンをサポートする型と共に fixed ステートメントを使用できます。 ○
追加のジェネリック制約を使用できます。 ○
タプル型を使用して == と != をテストできます。 ○
式の変数をより多くの場所で使用できます。 ○
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 ○
引数が in によって異なる場合のメソッド解決が改善されました。 ○
オーバーロードの解決のあいまいなケースが削減されました。 ○
8.0 読み取り専用メンバー ○
既定のインターフェイス メソッド ○ ○
パターン マッチングの拡張機能 ○
- switch 式 ○
- プロパティのパターン ○
- タプル パターン ○
- 位置指定パターン ○
using 宣言 ○
静的ローカル関数 ○
破棄可能な ref 構造体 ○
Null 許容参照型 ○
非同期ストリーム ○ ○
非同期の破棄可能 ○
インデックスと範囲 ○ ○
null 合体割り当て ○
構築されたアンマネージド型 ○ ○
入れ子になった式の stackalloc ○ ○
verbatim 補間文字列の拡張 ○
.NET Framework
で使えない機能を除外してみる
- 9.
/ 24
C# 新機能文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.0 out 変数 ○
タプル ○
破棄 ○
パターン一致 ○
ref ローカル変数と戻り値 ○ ○
ローカル関数 ○
式形式のメンバーの追加 ○
throw 式 ○
一般化された async の戻り値の型 ○
数値リテラルの構文の改善 ○
7.1 async Mainメソッド ○
default リテラル式 ○
推論されたタプル要素の名前 ○
ジェネリック型パラメーターのパターン マッチ ○
7.2 安全で効率的なコードを記述するための手法 ○ ○
末尾以外の名前付き引数 ○
数値リテラルでの先頭のアンダースコア (_) ○
private protected アクセス修飾子 ○
条件付きの ref 式 ○ ○
9
C# 新機能 文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.3 ピン留めを使用せずに fixed フィールドにアクセスできます。 ○
ref ローカル変数を再割り当てできます。 ○ ○
stackalloc 配列で初期化子を使用できます。 ○
パターンをサポートする型と共に fixed ステートメントを使用できます。 ○
追加のジェネリック制約を使用できます。 ○
タプル型を使用して == と != をテストできます。 ○
式の変数をより多くの場所で使用できます。 ○
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 ○
引数が in によって異なる場合のメソッド解決が改善されました。 ○
オーバーロードの解決のあいまいなケースが削減されました。 ○
8.0 読み取り専用メンバー ○
既定のインターフェイス メソッド ○ ○
パターン マッチングの拡張機能 ○
- switch 式 ○
- プロパティのパターン ○
- タプル パターン ○
- 位置指定パターン ○
using 宣言 ○
静的ローカル関数 ○
破棄可能な ref 構造体 ○
Null 許容参照型 ○
非同期ストリーム ○ ○
非同期の破棄可能 ○
インデックスと範囲 ○ ○
null 合体割り当て ○
構築されたアンマネージド型 ○ ○
入れ子になった式の stackalloc ○ ○
verbatim 補間文字列の拡張 ○
構造体の機能を除外してみる
- 10.
/ 24
C# 新機能文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.0 out 変数 ○
タプル ○
破棄 ○
パターン一致 ○
ref ローカル変数と戻り値 ○ ○
ローカル関数 ○
式形式のメンバーの追加 ○
throw 式 ○
一般化された async の戻り値の型 ○
数値リテラルの構文の改善 ○
7.1 async Mainメソッド ○
default リテラル式 ○
推論されたタプル要素の名前 ○
ジェネリック型パラメーターのパターン マッチ ○
7.2 安全で効率的なコードを記述するための手法 ○ ○
末尾以外の名前付き引数 ○
数値リテラルでの先頭のアンダースコア (_) ○
private protected アクセス修飾子 ○
条件付きの ref 式 ○ ○
10
C# 新機能 文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.3 ピン留めを使用せずに fixed フィールドにアクセスできます。 ○
ref ローカル変数を再割り当てできます。 ○ ○
stackalloc 配列で初期化子を使用できます。 ○
パターンをサポートする型と共に fixed ステートメントを使用できます。 ○
追加のジェネリック制約を使用できます。 ○
タプル型を使用して == と != をテストできます。 ○
式の変数をより多くの場所で使用できます。 ○
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 ○
引数が in によって異なる場合のメソッド解決が改善されました。 ○
オーバーロードの解決のあいまいなケースが削減されました。 ○
8.0 読み取り専用メンバー ○
既定のインターフェイス メソッド ○ ○
パターン マッチングの拡張機能 ○
- switch 式 ○
- プロパティのパターン ○
- タプル パターン ○
- 位置指定パターン ○
using 宣言 ○
静的ローカル関数 ○
破棄可能な ref 構造体 ○
Null 許容参照型 ○
非同期ストリーム ○ ○
非同期の破棄可能 ○
インデックスと範囲 ○ ○
null 合体割り当て ○
構築されたアンマネージド型 ○ ○
入れ子になった式の stackalloc ○ ○
verbatim 補間文字列の拡張 ○
Unsafe や値型の参照を扱う
機能を除外してみる
- 11.
/ 24
C# 新機能文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.0 out 変数 ○
タプル ○
破棄 ○
パターン一致 ○
ref ローカル変数と戻り値 ○ ○
ローカル関数 ○
式形式のメンバーの追加 ○
throw 式 ○
一般化された async の戻り値の型 ○
数値リテラルの構文の改善 ○
7.1 async Mainメソッド ○
default リテラル式 ○
推論されたタプル要素の名前 ○
ジェネリック型パラメーターのパターン マッチ ○
7.2 安全で効率的なコードを記述するための手法 ○ ○
末尾以外の名前付き引数 ○
数値リテラルでの先頭のアンダースコア (_) ○
private protected アクセス修飾子 ○
条件付きの ref 式 ○ ○
11
C# 新機能 文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.3 ピン留めを使用せずに fixed フィールドにアクセスできます。 ○
ref ローカル変数を再割り当てできます。 ○ ○
stackalloc 配列で初期化子を使用できます。 ○
パターンをサポートする型と共に fixed ステートメントを使用できます。 ○
追加のジェネリック制約を使用できます。 ○
タプル型を使用して == と != をテストできます。 ○
式の変数をより多くの場所で使用できます。 ○
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 ○
引数が in によって異なる場合のメソッド解決が改善されました。 ○
オーバーロードの解決のあいまいなケースが削減されました。 ○
8.0 読み取り専用メンバー ○
既定のインターフェイス メソッド ○ ○
パターン マッチングの拡張機能 ○
- switch 式 ○
- プロパティのパターン ○
- タプル パターン ○
- 位置指定パターン ○
using 宣言 ○
静的ローカル関数 ○
破棄可能な ref 構造体 ○
Null 許容参照型 ○
非同期ストリーム ○ ○
非同期の破棄可能 ○
インデックスと範囲 ○ ○
null 合体割り当て ○
構築されたアンマネージド型 ○ ○
入れ子になった式の stackalloc ○ ○
verbatim 補間文字列の拡張 ○
コンソールアプリやライブラリ
で使える機能を除外してみる
- 12.
/ 24
C# 新機能文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.0 out 変数 ○
タプル ○
破棄 ○
パターン一致 ○
ref ローカル変数と戻り値 ○ ○
ローカル関数 ○
式形式のメンバーの追加 ○
throw 式 ○
一般化された async の戻り値の型 ○
数値リテラルの構文の改善 ○
7.1 async Mainメソッド ○
default リテラル式 ○
推論されたタプル要素の名前 ○
ジェネリック型パラメーターのパターン マッチ ○
7.2 安全で効率的なコードを記述するための手法 ○ ○
末尾以外の名前付き引数 ○
数値リテラルでの先頭のアンダースコア (_) ○
private protected アクセス修飾子 ○
条件付きの ref 式 ○ ○
12
C# 新機能 文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.3 ピン留めを使用せずに fixed フィールドにアクセスできます。 ○
ref ローカル変数を再割り当てできます。 ○ ○
stackalloc 配列で初期化子を使用できます。 ○
パターンをサポートする型と共に fixed ステートメントを使用できます。 ○
追加のジェネリック制約を使用できます。 ○
タプル型を使用して == と != をテストできます。 ○
式の変数をより多くの場所で使用できます。 ○
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 ○
引数が in によって異なる場合のメソッド解決が改善されました。 ○
オーバーロードの解決のあいまいなケースが削減されました。 ○
8.0 読み取り専用メンバー ○
既定のインターフェイス メソッド ○ ○
パターン マッチングの拡張機能 ○
- switch 式 ○
- プロパティのパターン ○
- タプル パターン ○
- 位置指定パターン ○
using 宣言 ○
静的ローカル関数 ○
破棄可能な ref 構造体 ○
Null 許容参照型 ○
非同期ストリーム ○ ○
非同期の破棄可能 ○
インデックスと範囲 ○ ○
null 合体割り当て ○
構築されたアンマネージド型 ○ ○
入れ子になった式の stackalloc ○ ○
verbatim 補間文字列の拡張 ○
メソッドのオーバーロードの
解決の改善を除外してみる
- 13.
/ 24
C# 新機能文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.0 out 変数 ○
タプル ○
破棄 ○
パターン一致 ○
ref ローカル変数と戻り値 ○ ○
ローカル関数 ○
式形式のメンバーの追加 ○
throw 式 ○
一般化された async の戻り値の型 ○
数値リテラルの構文の改善 ○
7.1 async Mainメソッド ○
default リテラル式 ○
推論されたタプル要素の名前 ○
ジェネリック型パラメーターのパターン マッチ ○
7.2 安全で効率的なコードを記述するための手法 ○ ○
末尾以外の名前付き引数 ○
数値リテラルでの先頭のアンダースコア (_) ○
private protected アクセス修飾子 ○
条件付きの ref 式 ○ ○
13
C# 新機能 文
/
式
ク
ラ
ス
構
造
体
メ
モ
リ
そ
の
他
.NET
Core
3.0
のみ
7.3 ピン留めを使用せずに fixed フィールドにアクセスできます。 ○
ref ローカル変数を再割り当てできます。 ○ ○
stackalloc 配列で初期化子を使用できます。 ○
パターンをサポートする型と共に fixed ステートメントを使用できます。 ○
追加のジェネリック制約を使用できます。 ○
タプル型を使用して == と != をテストできます。 ○
式の変数をより多くの場所で使用できます。 ○
自動実装プロパティのバッキング フィールドに属性をアタッチできます。 ○
引数が in によって異なる場合のメソッド解決が改善されました。 ○
オーバーロードの解決のあいまいなケースが削減されました。 ○
8.0 読み取り専用メンバー ○
既定のインターフェイス メソッド ○ ○
パターン マッチングの拡張機能 ○
- switch 式 ○
- プロパティのパターン ○
- タプル パターン ○
- 位置指定パターン ○
using 宣言 ○
静的ローカル関数 ○
破棄可能な ref 構造体 ○
Null 許容参照型 ○
非同期ストリーム ○ ○
非同期の破棄可能 ○
インデックスと範囲 ○ ○
null 合体割り当て ○
構築されたアンマネージド型 ○ ○
入れ子になった式の stackalloc ○ ○
verbatim 補間文字列の拡張 ○
残り 29 機能
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.