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

  • 相关阅读:
    关于js中this的指向问题
    关于css垂直水平居中的几种方法
    个人第一个jquery插件(tips)
    css3实现虚拟三角形
    js-关于唯一ID的创建
    面试题
    new Promise()
    JSON.parse()、JSON.stringify()和eval()的作用
    vue-router路由导航
    NodeJS
  • 原文地址:https://www.cnblogs.com/mondol/p/1387209.html
Copyright © 2011-2022 走看看