在C#Code后面的页面中添加换行符

时间:2009-11-23 14:07:13

标签: c#

我在C#中写了一个超出页面宽度的代码,所以我希望根据我的格式将它分成下一行。我试图搜索很多东西来换行,但是却找不到。

在VB.NET中,我使用'_'表示换行符,与C#中使用的方法相同? 我想破坏一个字符串。

先谢谢 Shantanu Gupta

11 个答案:

答案 0 :(得分:30)

在C#中,没有像VB.NET那样的“新行”字符。代码的逻辑“行”的结尾用';'表示。如果你希望在多行上打破代码行,只需点击回车符(或者如果你想以编程方式添加它(对于以编程方式生成的代码),请插入'Environment.NewLine'或'\ r \ n'。

编辑:响应您的评论:如果您希望在多行(即以编程方式)中断字符串,则应插入Environment.NewLine字符。这将考虑环境以创建行结束。例如,许多环境(包括Unix / Linux)仅使用NewLine字符(\ n),但Windows同时使用回车符和换行符(\ r \ n)。所以要打破一个字符串你会使用:

string output = "Hello this is my string\r\nthat I want broken over multiple lines."

当然,这只会对Windows有利,所以在我因为不正确的练习而受到抨击之前你应该这样做:

string output = string.Format("Hello this is my string{0}that I want broken over multiple lines.", Environment.NewLine);

或者,如果要在IDE中拆分多行,可以执行以下操作:

string output = "My string"
              + "is split over"
              + "multiple lines";

答案 1 :(得分:18)

选项A:将多个字符串文字连接成一个:

string myText = "Looking up into the night sky is looking into infinity" +
    " - distance is incomprehensible and therefore meaningless.";

选项B:使用单个多行字符串文字:

string myText = @"Looking up into the night sky is looking into infinity
- distance is incomprehensible and therefore meaningless.";

使用选项B,换行符将成为保存在变量myText中的字符串的一部分。这可能是,也可能不是你想要的。

答案 2 :(得分:6)

在开始字符串之前使用@符号。 像

string s = @"this is a really
long string
and this is 
the rest of it";

答案 3 :(得分:6)

 result = "Minimum MarketData"+ Environment.NewLine
           + "Refresh interval is 1";

答案 4 :(得分:5)

如果我正确理解了这一点,你应该能够将字符串分解为子字符串来实现这一点。

即:

string s = "this is a really long string" +
"and this is the rest of it";

答案 5 :(得分:3)

C#没有明确的换行符。您的语句以分号结尾,因此您可以在多行中跨越语句。这些都是相同的:

public string GenerateString()
{
    return "abc" + "def";
}

public string GenerateString()
{
    return
        "abc" +
        "def";
}

答案 6 :(得分:2)

C#代码可以在几乎任何语法结构的行之间拆分,而不需要'_'样式结构。

例如

foo.
 Bar(
   42
 , "again");

答案 7 :(得分:2)

您需要做的就是添加\ n或写入文件\ r \ n。

<强>示例:

说你想写鸭子(换行)牛这是你怎么做的 Console.WriteLine(“duck \ n cow”);

编辑:我想我不明白这个问题。你可以使用

@"duck
cow".Replace("\r\n", "")

作为代码中的换行符,生成使用Windows的\ r \ n。

答案 8 :(得分:1)

   dt = abj.getDataTable(
"select bookrecord.userid,usermaster.userName, "
                                                +" book.bookname,bookrecord.fromdate, "
                                                +" bookrecord.todate,bookrecord.bookstatus "
                                                +" from book,bookrecord,usermaster " 
                                                +" where bookrecord.bookid='"+ bookId +"' "
                                                +" and usermaster.userId=bookrecord.userid "
                                                +" and book.bookid='"+ bookId +"'");

答案 9 :(得分:0)

伙计们......在代码背后的长字符串中使用资源!!

另外..你不需要_用于C#中的代码行中断。在VB中,代码行以换行符(或':')结尾,使用_会告诉解析器它还没有到达行的末尾。 C#中的代码行以';'结尾所以你可以使用换行符来格式化你的代码。

答案 10 :(得分:0)

字符串是不可变的,所以使用

public string GenerateString()
{
    return
        "abc" +
        "def";
}

会降低性能 - 这些值中的每一个都是一个字符串文字,必须在运行时连接 - 如果你重用方法/属性/任何很多的话,那就是坏消息......

将您的字符串文字存储在资源中是一个好主意......

public string GenerateString()
{
    return Resources.MyString;
}

这样它可以本地化并且代码很整洁(虽然性能非常糟糕)。