C#11新特性-Raw string literals原始字串研究、範例

2022-12-12 06:02:41

這幾天看C# 11的新語法,學習到了Raw string literals

今天給大家分享一下:

原始字串是字串的一種新格式。

原始字串可以包含任意文字,包括空格、新行、嵌入引號和其他特殊字元,無需跳脫字元(這個很關鍵、也很簡單)

原始字串以至少三個雙引號 (""") 字元開頭。 它以相同數量的雙引號字元結尾。

通常,原始字串在單個行上使用三個雙引號來開始字串,在另一行上用三個雙引號來結束字串。 左引號之後、右引號之前的換行符不包括在最終內容中:

寫個範例程式碼看看

先新建了一個.NET 7.0的Console應用

PS E:\Learn\.NET7> dotnet new console --framework  net7.0

 

 

   我們在Program.cs中新增以下程式碼

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, C#11!");
string txt = """
    This is a long message.
    It has several lines.
        Some are indented
                more than others.
    Some should start at the first column.
    Some have "quoted text" in them.
    """;

Console.WriteLine(txt);

  dotnet run執行

 

  大家可以看到,宣告的原始字串txt,可以按照輸入的格式全量輸出。

  右雙引號左側的任何空格都將從字串中刪除。

  原始字串可以與字串內插結合使用,以在輸出文字中包含大括號。 多個 $ 字元表示有多少個連續的大括號開始和結束內插:

var Longitude= """12""";
var Latitude= """16""";
var location = $$"""
   You are at {{{Longitude}}, {{Latitude}}}
   """;
Console.WriteLine(location);

  猜猜輸出什麼:

  You are at {12, 16}

  前面的範例指定了兩個大括號開始和結束內插。 第三個重複的左大括號和右大括號包括在輸出字串中。

 

  周國慶

2022/12/11