2012-07-18 31 views
2

如何在不添加回車的情況下用換行符創建一個字符串? 在Windows機器上使用Environment.NewLine方法返回一個CR/LF組合。我只需要LF。窗戶上沒有CR的LF

我知道Microsoft.VisualBasic庫中的VBLF,但作爲公司政策,我們不允許使用它。

+1

爲什麼地球上你不能使用MSVB庫? – Matt 2012-07-18 12:13:16

+0

它被認爲是一個遺留圖書館。如果沒有其他可行的選擇,我可以和建築師討論一下。 – 2012-07-18 12:17:17

+2

對您的僱主來說,值得注意的是Environment.NewLine,如果'反映'到VB,將會返回使用'legacy library'的ChrW(13)+ ChrW(10).... – hometoast 2012-07-18 12:37:22

回答

2

我會建議使用在ControlChars類中的常量以獲得單個LF字符。此外,我會建議使用字符串生成器:

Dim builder As New StringBuilder() 
builder.Append("first line") 
builder.Append(ControlChars.Lf) 
builder.Append("second line") 
builder.Append(ControlChars.Lf) 
builder.Append("third line") 
+0

ControlChars枚舉也在'Microsoft.VisualBasic'命名空間中。否則,這絕對是要走的路。 – hometoast 2012-07-18 12:48:54

+1

是的,它位於'Microsoft.VisualBasic'命名空間中,但它不是遺留的。它不存在於VB6中,因爲VB不具有與C#相同的轉義序列(例如'「\ n」),所以在VB.NET中特別添加它作爲使用特殊字符的首選方式。 – 2012-07-18 12:51:46

+0

我**完全同意這不是傳統。如果OP能說服他的僱主,那麼問題就解決了。 – hometoast 2012-07-18 12:56:29

0

您可以添加回車/換行分別

Dim myString As String = "This is my string" 

myString &= vbCr 'This will only add CarrigeReturn character 

或者您可以使用回車的ASCII碼是13,而換行10

myString &= Chr(10) 'This will add LF 
myString &= Chr(13) 'This will add CR 
+0

他要求LF,而不是CR。 – Matt 2012-07-18 12:14:31

+0

請參閱OP。我想不添加回車,只有換行。此外,我想不使用遺留庫Microsoft.VisualBasic(其中vbCr和Chr()駐留) – 2012-07-18 12:16:13

+0

謝謝我注意到這一點。我對我的回答進行了更正 – Ahmad 2012-07-18 12:17:09

0

如果一定要卡住了這個限制,你可以把LF從Environment.NewLine中拉出來。

Environment.NewLine.Substring(1,1)