zoukankan      html  css  js  c++  java
  • 关于C#的续行符

    众所周知,如果你需要在代码中定义一个较长的字符串,首先我会想把它们放在多行上(因为放在一行上会不便于阅读),这样代码即美观又便于阅读;这就需要续行符了。

    在C/C++中续行符可以用 \ 或二字"括起来的字符串来表示,如:
    char* str1 = "string one\
                  two";

    char* str2 = "string one"
                 "two";


    在VB中续行符可以用_来表示,如:(VB语法有些忘了,不过续行符_是没错的)
    Dim str1 As String
    str1="string one"_
         "two"

    可是到了C#,找遍MSDN也没有找到有关续行符的语法(如果有高手知道还请指点),不过在C#可是用“通用”的字符串“续行符”,如:
    string str1="string one"+
                "two";

    很明显这只是普通的字符串拼接,跟本不是什么续行符,不过C#的编译器是很智能的,将上面的代码编译后生成的IL指令转换为源代码后是这样的:
    string str1="string onetwo";

    也就是说C#编译器自动将它们连接,并视一个字符串常量了。

    再看下面这个例子:
    string str1="three";
    string str2="string "+"one "+str1;

    你会想到编译后生成的源代码是什么吗?
    没错,上面的代码编译后生成的IL指令转换为源代码就是:
    string str1="three";
    string str2="string one "+str1;

    最后C#还有一种方法可以定义超长字符串,但这种方法会将回车换行符等视有效字符串;如:
    string mailto:str1=@%22string one
    two";

    上面的代码编译后生成的IL指令转换为源代码就是:
    string str1="string one\r\ntwo";

  • 相关阅读:
    李时珍的皮肤衣【快速幂】
    ClickHouse深度解析
    Hadoop&HDFS知识点整理
    实时日志数据写入Clickhouse
    Kafka consumer Job异常重置offset
    Flink WaterMark原理与实现
    Spark定期合并Hive表小文件
    Flink 1.11 Table & SQL深度解读
    Docker 安装Elasticsearch、Kibana实战——避免踩坑
    Flink 异步IO实践
  • 原文地址:https://www.cnblogs.com/mondol/p/1387209.html
Copyright © 2011-2022 走看看