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";

  • 相关阅读:
    Auto.js 入门教程
    几乎纯css实现弹出框
    php curl访问https 域名接口一直报错的问题
    金山打字通刷打字速度脚本
    centos 安装 图像识别工具 tesseract-ocr 流程
    js 实现俄罗斯方块(三)
    小程序报错 .wxss 无法找到
    Redis存储数组
    问题记录-databinding/hilt踩坑记录
    问题记录-CoordinatorLayout+WebView使用遇到的问题
  • 原文地址:https://www.cnblogs.com/mondol/p/1387209.html
Copyright © 2011-2022 走看看