Ver. 11.0
※ 2022/5/4 現在、プレビュー版です。
リリース時期 | 2022/? |
---|---|
同世代技術 |
|
要約・目玉機能 |
|
執筆予定: C# 11.0 トラッキング issue
その他
ジェネリックな属性
// 属性クラスをジェネリックにできるように。
class TypeConverter<T> : Attribute { }
// <> で型引数を指定できる。
[TypeConverter<MyConverter>]
class MyClass { }
文字列補間中の改行
文字列補間で、以下のようなコードが書けるようになりました
({}
の中で改行を入れれるようになりました)。
var a = 1;
var b = 2;
var s = $"a: {
a // ここで改行できるのは C# 11 から
}, b: {b}";
ちなみに、以下のように、$@
(文字列補間、かつ、逐語的文字列リテラル)を使う場合には C# 10.0 以前でも以下のようなコードが普通に書けました。
var a = 1;
var b = 2;
var s = $@"a: {
a // $@ の場合は C# 10.0 以前でも OK
}, b: {b}";
「$""
の場合だけダメだった理由は今となっては思い出せない」というレベルだそうで、
仕様漏れ・バグ修正の類にギリギリの「新機能」になります。