我在C#中写了一个超出页面宽度的代码,所以我希望根据我的格式将它分成下一行。我试图搜索很多东西来换行,但是却找不到。
在VB.NET中,我使用'_'表示换行符,与C#中使用的方法相同? 我想破坏一个字符串。
先谢谢 Shantanu Gupta
答案 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;
}
这样它可以本地化并且代码很整洁(虽然性能非常糟糕)。