您的位置:首页 > 文旅 > 旅游 > 网站改版具体建议_泰安卫生人才网_seo建设者_有趣的软文

网站改版具体建议_泰安卫生人才网_seo建设者_有趣的软文

2025/1/10 22:39:13 来源:https://blog.csdn.net/qq_39847278/article/details/144884262  浏览:    关键词:网站改版具体建议_泰安卫生人才网_seo建设者_有趣的软文
网站改版具体建议_泰安卫生人才网_seo建设者_有趣的软文

总目录


前言

本文主要介绍 string literalsstring literals 在MSDN 中文文档中有翻译成 字符串字面量也有翻译成字符串文本的,本文统一使用字符串文本


一、介绍

在使用C# 编程的过程中,通过会使用string 类型 来定义 字符串文本。

二、字符串文本

1. 带引号的字符串文本

1)正常使用

  • 带引号的字符串文本在同一行上以单个双引号字符 (") 开头和结尾。
		string str = "hello world!";
  • 带引号的字符串文本最适合匹配单个行且不包含任何转义序列的字符串。
  • 带引号的字符串文本,可以包含任何字符文本,但是某些内容需要使用转义符才能正确表示

2)包含转义符的使用

  • 当需要用string 表示一个路径的时候,如果直接用路径表示,则会报错;加上 \ 转义符后,才得以正确的表示路径
    在这里插入图片描述
        static void Main(string[] args){string path = "E:\\MyCode\\my-study";Console.WriteLine(path);    //输出:E:\MyCode\my-study}
  • 当我们想要输出 带有 “” 的字符串文本的时候,我们同样需要加上 \ 转义符
    在这里插入图片描述
        static void Main(string[] args){string str = "{\"K\":\"V\"}";Console.WriteLine(str);    //输出:{"K":"V"}}
  • 当我们想要输出 可以换行的字符串文本的时候,我们需要加上 \r\n
        static void Main(string[] args){string str = "{\r\n \"K\":\"V\" \r\n}";Console.WriteLine(str);/*输出:{"K":"V"}*/}

在使用带引号的字符串文本的时候,我们发现在想正确的表示某些字符串文本的时候,需要加上各种各样的转义符,还得逐个添加,其实是极其的不方便。因此带引号的字符串文本最适合匹配单个行且不包含任何转义序列的字符串。

2. 逐字字符串文本

1)正常使用

  • 对于多行字符串、包含反斜杠字符或嵌入双引号的字符串,逐字字符串文本更方便。
  • 逐字字符串将新的行字符作为字符串文本的一部分保留。 使用双引号在逐字字符串内部嵌入引号。
  • 逐字字符串文本 使用@ 符号 定义字符串文本,这时大部分的字符不需要转义符转移,只是 要转义成 ”“

在这里插入图片描述

        static void Main(string[] args){string path = @"E:\MyCode\my-study";Console.WriteLine(path); string str = @"{""K"":""V""}";Console.WriteLine(str);          string quote = @"我的名字叫 ""鲤籽鲲。""";Console.WriteLine(quote);        string str2 = @"大家好,
我叫鲤籽鲲,很高兴认识大家!";Console.WriteLine(str2);}

可以将逐字字符串文本理解为 带引号的字符串文本的 升级版,大部分的字符不需要转义符转移,只是 要转义成 ”“,感觉还是不够直观。

2)与$ 符号一起使用

        static void Main(string[] args){string name = "鲤籽鲲";string str = $@"我的名字叫 ""{name}。""";Console.WriteLine(str);     //我的名字叫 "鲤籽鲲。"}
        static void Main(string[] args){string nickName = "小鲤鱼";string str = $@"我的昵称叫做:{{nickName}}";Console.WriteLine(str);     // 我的昵称叫做:{nickName}str = $@"我的昵称叫做:{{{nickName}}}";Console.WriteLine(str);     // 我的昵称叫做:{小鲤鱼}}
  • 当 @ 和 $ 内插字符串符号一起使用的时候,如果想要输出{},则需要转义成{{}}
    • 如上例中 {{nickName}} 是无法解析string的值,而{{{nickName}}} 可以解析

3. 原始字符串文本

  • 从 C# 11 开始,可以使用原始字符串文本更轻松地创建多行字符串,或使用需要转义序列的任何字符。
  • 原始字符串文本无需使用转义序列。 你可以编写字符串,包括空格格式,以及你希望在输出中显示该字符串的方式。
  • 原始字符串文本:
    • 以至少三个双引号字符序列 (""") 开头和结尾。
    • 可以使用三个以上的连续字符开始和结束序列,以支持包含三个(或更多)重复引号字符的字符串文本。
    • 单行原始字符串字面量需要左引号和右引号字符位于同一行上。
    • 多行原始字符串字面量需要左引号和右引号字符位于各自的行上。
    • 在多行原始字符串字面量中,会删除右引号左侧的任何空格。

1)正常使用

以至少三个双引号字符序列 (""") 开头和结尾 表示原始字符串文本,无需使用转义序列。

        static void Main(string[] args){string path = """E:\MyCode\my-study""";Console.WriteLine(path);        //E:\MyCode\my-studystring str = """{"K":"V"}""";Console.WriteLine(str);         //{"K":"V"}string quote = """我的名字叫 ""鲤籽鲲。"" """;Console.WriteLine(quote);       //我的名字叫 ""鲤籽鲲。""}

2)输出大于3个双引号的字符串文本

可以使用三个以上的连续字符开始和结束序列,以支持包含三个(或更多)重复引号字符的字符串文本。

        static void Main(string[] args){Console.WriteLine(""" "C#/.NET" """);               // "C#/.NET"Console.WriteLine(""" ""C#/.NET"" """);             // ""C#/.NET""Console.WriteLine("""" """C#/.NET""" """");         // """C#/.NET"""Console.WriteLine(""""" """"C#/.NET"""" """"");     // """"C#/.NET""""}

3)单行原始字符串文本

单行原始字符串字面量需要左引号和右引号字符位于同一行上。

正确使用:

string singleLine = """Friends say "hello" as they pass by.""";

错误使用:

// CS8997: Unterminated raw string literal.
var multiLineStart = """Thisis the beginning of a string """;// CS9000: Raw string literal delimiter must be on its own line.
var multiLineEnd = """This is the beginning of a string """;

在这里插入图片描述

3)多行原始字符串文本

多行原始字符串字面量需要左引号和右引号字符位于各自的行上。

正确使用:

string multiLine = """"Hello World!" is typically the first program someone writes.""";
string embeddedXML = """<element attr = "content"><body style="normal">Here is the main text</body><footer>Excerpts from "An amazing story"</footer></element >""";

错误使用:

// CS8999: Line does not start with the same whitespace as the closing line
// of the raw string literal
var noOutdenting = """A line of text.
Trying to outdent the second line.""";

在这里插入图片描述
在这里插入图片描述

4)与 $ 符号一起使用

            static void Main(string[] args){string name = "鲤籽鲲";string str = $""" ""我的名字叫 ""{name}"" """;Console.WriteLine(str);     //我的名字叫 "鲤籽鲲。"}
        static void Main(string[] args){string nickName = "小鲤鱼";string str = $$""" 我的昵称叫做:{{nickName}}""";Console.WriteLine(str);     //  我的昵称叫做:小鲤鱼str = $$""" 我的昵称叫做:{{{nickName}}} """;Console.WriteLine(str);     // 我的昵称叫做:{小鲤鱼}str = $$$""" 我的昵称叫做:{{{nickName}}} """;Console.WriteLine(str);     // 我的昵称叫做:小鲤鱼}

在这里插入图片描述

  • 当原始字符串文本与$ 一起使用的时候,如果需要解析{}中变量的值,则需要通过1个或多个$ 进行解析
    • {} 包了多少层,那么$ 就需要使用多少个

5)小结

  • 使用带引号的字符串文本或逐字字符串文本时,如果生成的文本包括需要转义序列的字符,应考虑原始字符串文本。
  • 原始字符串字面量将更易于你和其他人阅读,因为它更类似于输出文本
    • 例如使用原始字符串文本 表示 Json字符串 会相较于前两种方法更易阅读
string jsonString = """
{"Date": "2019-08-01T00:00:00-07:00","TemperatureCelsius": 25,"Summary": "Hot","DatesAvailable": ["2019-08-01T00:00:00-07:00","2019-08-02T00:00:00-07:00"],"TemperatureRanges": {"Cold": {"High": 20,"Low": -10},"Hot": {"High": 60,"Low": 20}},"SummaryWords": ["Cool","Windy","Humid"]
}
""";

4. 字符串转义序列

在这里插入图片描述

  • \字符 - 转义字符(Escape Character),\字符用于创建转义序列,表示特殊字符或控制字符。

  • 常见的转义序列包括:

    • \\ - 表示反斜杠字符本身。
    • \" - 表示双引号字符。
    • \' - 表示单引号字符。
    • \n - 表示换行符。
    • \r - 表示回车符。
    • \t - 表示制表符。
  • \\ 使用案例

        static void Main(string[] args){string path = "E:\\MyCode\\my-study";Console.WriteLine(path);    //输出:E:\MyCode\my-study}
  • \"使用案例
        static void Main(string[] args){string str = "{\"K\":\"V\"}";Console.WriteLine(str);    //输出:{"K":"V"}}
  • \t使用案例
        static void Main(string[] args){string columns = "Column 1\tColumn 2\tColumn 3";Console.WriteLine(columns);}

在这里插入图片描述

  • \r\n使用案例
string rows = "Row 1\r\nRow 2\r\nRow 3";
/* Output:Row 1Row 2Row 3
*/
  • \b使用案例
    \b 去掉上一个字符
        static void Main(string[] args){string str = "hello\b world !";Console.WriteLine(str);     //hell world !}
  • \u使用案例
string title = "\"The \u00C6olean Harp\", by Samuel Taylor Coleridge";
//Output: "The Æolean Harp", by Samuel Taylor Coleridge

结语

回到目录页:C# 知识汇总
希望以上内容可以帮助到大家,如文中有不对之处,还请批评指正。


参考资料:
字符串和字符串字面量
原始字符串字面量 - 字符串字面量中的 “”"
内置引用类型(C# 引用)
String 类
System.String 类
C#11的原始字符串
C# 11 新特性:原始字符串

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com