zoukankan      html  css  js  c++  java
  • C# 支持两种形式的字符串:规则字符串和逐字字符串

         规则字符串由包含在双引号中的零个或多个字符组成(如 "hello"),并且可以包含简单转义序列(如表示制表符的 \t)、十六进制转义序列和 Unicode 转义序列。

         逐字字符串由 @ 字符后跟开始的双引号字符、零个或多个字符以及结束的双引号字符组成。一个简单的示例就是 @"hello"。在逐字字符串中,分隔符之间的字符逐字解释,唯一的例外是“引号转义序列”。具体说来,在逐字字符串中不处理简单转义序列以及十六进制和 Unicode 转义序列。逐字字符串可以跨多行。

    string-literal:(字符串:)
    regular-string-literal(规则字符串)
    verbatim-string-literal(逐字的字符串)
    regular-string-literal:(规则字符串:)
    "   regular-string-literal-charactersopt   "("   规则字符串字符可选   ")
    regular-string-literal-characters:(规则字符串字符:)
    regular-string-literal-character(规则字符串字符)
    regular-string-literal-characters   regular-string-literal-character(规则字符串字符   规则字符串字符)
    regular-string-literal-character:(规则字符串字符:)
    single-regular-string-literal-character(单个规则字符串字符)
    simple-escape-sequence(简单转义序列)
    hexadecimal-escape-sequence(十六进制转义序列)
    unicode-escape-sequence(unicode 转义序列)
    single-regular-string-literal-character:(单个规则字符串字符:)
    除 " (U+0022)、\ (U+005C) 和换行符外的任何字符
    verbatim-string-literal:(逐字的字符串:)
    @"   verbatim -string-literal-charactersopt   "(@"   逐字的字符串字符可选   ")
    verbatim-string-literal-characters:(逐字的字符串字符:)
    verbatim-string-literal-character(逐字的字符串字符)
    verbatim-string-literal-characters   verbatim-string-literal-character(逐字的字符串字符   逐字的字符串字符)
    verbatim-string-literal-character:(逐字的字符串字符:)
    single-verbatim-string-literal-character(单个逐字的字符串字符)
    quote-escape-sequence(引号转义序列)
    single-verbatim-string-literal-character:(单个逐字的字符串字符:)
    除 " 外的任何字符
    quote-escape-sequence:(引号转义序列:)
    ""
    规则字符串字符中跟在反斜杠字符 (\) 后面的字符必须是下列字符之一:'、"、\、0、a、b、f、n、r、t、u、U、x、v。否则将发生编译时错误。

    示例

    string a = "hello, world";                  // hello, world
    string b = @"hello, world";               // hello, world
    string c = "hello \t world";               // hello     world
    string d = @"hello \t world";               // hello \t world
    string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
    string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
    string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
    string h = @"\\server\share\file.txt";      // \\server\share\file.txt
    string i = "one\r\ntwo\r\nthree";
    string j = @"one
    two
    three";显示了各种不同的字符串。最后一个字符串 j 是跨多行的逐字字符串。引号之间的字符(包括空白,如换行符等)也逐字符保留。

    由于十六进制转义序列可以包含数目可变的十六进制数字,因此字符串 "\x123" 只包含一个具有十六进制值 123 的字符。若要创建一个包含具有十六进制值 12 的字符,后跟一个字符 3 的字符串,可以改写为 "\x00123" 或 "\x12" + "3"。

    “字符串”的类型为 string。

    每个字符串不一定产生新的字符串实例。当根据字符串相等运算符(第 7.9.7 节)确认为相等的两个或更多个字符串出现在同一个程序集中时,这些字符串引用相同的字符串实例。例如,

    class Test
    {
    static void Main() {
    object a = "hello";
    object b = "hello";
          System.Console.WriteLine(a == b);
       }
    }产生的输出为 True,这是因为两个字符串引用相同的字符串实例。

    转载: http://www.caodong.net/Article/703.html

  • 相关阅读:
    Centos7 安装 Nginx
    Centos7 安装Php7 (貌似没成功)
    Centos7 安装 Mysql (Ubuntu)
    Centos7 安装apache(LAMP)
    Tp5 写类下商品计算数量
    Tp5 写随机数(商品货号)
    Tp5的 多项搜索框(下拉框+输入框)
    centos7 安装python3
    centos 安装notepad++
    用selenium控制已打开的浏览器
  • 原文地址:https://www.cnblogs.com/ruijian/p/2050485.html
Copyright © 2011-2022 走看看