目次

Ver. 11.0

※ 2022/5/4 現在、プレビュー版です。

リリース時期 2022/?
同世代技術
  • .NET 7.0
要約・目玉機能

執筆予定: 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}";

$"" の場合だけダメだった理由は今となっては思い出せない」というレベルだそうで、 仕様漏れ・バグ修正の類にギリギリの「新機能」になります。

更新履歴

ブログ