我有一個字符串,如下所示,雖然當它到達結腸拋出一個錯誤,我已經使用@逃避一切:爲什麼這個字符串不能正確地轉義?
string vmListCommand = @"vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1":"$2}'";
我有一個字符串,如下所示,雖然當它到達結腸拋出一個錯誤,我已經使用@逃避一切:爲什麼這個字符串不能正確地轉義?
string vmListCommand = @"vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1":"$2}'";
使用\
刪除@
和逃避雙引號:
string vmListCommand = "vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1\":\"$2}'";
您寫道:
我用@逃避一切
@
用於更改轉義bahaviour,而不是轉義所有。如果一個字符串以@
爲前綴,則忽略轉義序列(\
)。
在您的字符串中使用\
進行換碼。
例子:
string str1 ="hello\\";
您需要刪除的文字和逃生
string vmListCommand = "vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1\":\"$2}'";
有需要在文字字符串進行轉義一個字符。雙引號"
。如果你不逃避它,編譯器如何知道哪個"
是字符串的一部分,以及哪個字符串終止?
要在文本字符串逃脫"
,只需雙擊它:
@"vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1"":""$2}'"
另外,您可以切換到正常的字符串語法,並與\
逃脫。
如果你想了解更多關於'@ string'的內容,請看看[@(at)sign in file path/string](http://stackoverflow.com/questions/5179389/at-sign-in-文件路徑字符串)和[在C#中字符串前面的@是什麼?](http://stackoverflow.com/questions/556133/whats-the-front-of-a-string-in-c ) – Zbigniew 2012-07-28 13:17:31