【ハルシオンブログ】Unity2021.2でC#9の一部機能が使えるようになったようです。
こんにちは。
大坂です。
Unity2021.2からC#9.0の一部機能が使えるようになったみたいですね。
公式のリリースノートから抜粋

- パターンマッチングの機能強化
- 関数ポインタ
- target-typed new
- 静的匿名関数
- target-typed条件演算子
- foreachループの拡張GetEnumeratorサポート
- ラムダ式での引数の破棄
- ローカル関数の属性
- 新しいpartialメソッド
という感じでしょうか。
色々ありますが今回はパターンマッチングの機能強化について少しだけ。
条件文で使えるようになった感じですかね。
上記は変数でやってますが、関数でやっても1回の評価しかされないということですね。
今までは関数の戻り値を1回変数に入れてからやっていたところが省略できる感じになります。
色々組み合わせて複雑なことも出来ますが、やりすぎるとコードが読みにくくなりそうなので、注意が必要そうです。
では今週もこれにてノシ
大坂です。
Unity2021.2からC#9.0の一部機能が使えるようになったみたいですね。
公式のリリースノートから抜粋

- パターンマッチングの機能強化
- 関数ポインタ
- target-typed new
- 静的匿名関数
- target-typed条件演算子
- foreachループの拡張GetEnumeratorサポート
- ラムダ式での引数の破棄
- ローカル関数の属性
- 新しいpartialメソッド
という感じでしょうか。
色々ありますが今回はパターンマッチングの機能強化について少しだけ。
条件文で使えるようになった感じですかね。
int i = 0;
// いままで
if (i >= 0 && i < 10)
}
// パターンマッチングの強化
if (i is >= 0 and < 10) {
}
何が違うかというと、「i」の評価が1回でいいというところです。上記は変数でやってますが、関数でやっても1回の評価しかされないということですね。
今までは関数の戻り値を1回変数に入れてからやっていたところが省略できる感じになります。
// いままで
int i = GetInt();
if(i >= 0 && i < 10){
}
// パターンマッチングの強化
if(GetInt() is >= 0 and < 10) {
}
慣れたら使いやすいんでしょうかね…?色々組み合わせて複雑なことも出来ますが、やりすぎるとコードが読みにくくなりそうなので、注意が必要そうです。
では今週もこれにてノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】「●●分後に処理を行う」を簡単にやる方法。 | 【ハルシオンブログ】久しぶりにデジゲー博いってきましたよー »
コメント
| h o m e |