.net7.0 C#11

ついに.net7.0が正式リリース。C#11も正式にサポートされるようになった。

.net7.0+C#11には色々な機能追加があるが、私が1番よく使うであろう物は「生文字リテラル」かな。MSのサイトでは「未加工の文字リテラル」と翻訳されているが、要は文字列中に「”」や「{」等をエスケープ文字無しで書ける構文だ。

以下のような感じで文字列を定義できる。

string jsonstr = """
[
    {"Name": "T.Sumomo", "Email": "t.sumomo@momo.com"},
    {"Name": "J.Sumomo", "Email": "j.sumomo@momo.com"},
    {"Name": "S.Sumomo", "Email": "s.sumomo@momo.com"}
]
""";

文字列補間も可能で、以下のような感じ

int x = 100;
int y = 200;
string replstr = $$"""
    { "X" : {{x}}, "Y": {{y}} }
""";

文字列補間と認識させる「{」の数分、「$」を付ける。

ちなみに、「”」の数も同じような感じで、「”””」までエスケープ無しならば、「””””」とする。

string example = """"
string jsonstr = """
[
    {"Name": "T.Sumomo", "Email": "t.sumomo@momo.com"},
    {"Name": "J.Sumomo", "Email": "j.sumomo@momo.com"},
    {"Name": "S.Sumomo", "Email": "s.sumomo@momo.com"}
]
""";
"""";

上記一応、動作確認してます。

後、別記事にするつもりだけど、数値系がINumber<T>をインプリメントしたこと。これにより、intやdouble等数値専用のジェネリッククラスの定義が簡単になった。それと、Int128かな。

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: .NET, C#, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください