■2201 / ) |
(C#.NET)エスケープシーケンスについて |
□投稿者/ とおりすがり 二等兵(1回)-(2005/12/26(Mon) 08:56:14)
|
分類:[C#]
分類:[C#]
いつも参考にさせていただいています。 C#.NETでの円マークの扱いについての質問です。 (以下、半角円マーク「¥」は「\」と表示されますのでご留意下さい)
[string abc = "C:\Program Files";]のように記述すると 構文エラーが発生するため、 [string abc = @"C:\ProgramFiles";]のように エスケープシーケンス文字として読ませるよう記述すると思います。
ところが、何故か改行コードは[string abc = "\r\n";]と記述しても 構文エラーが発生しません。もちろん[string def = @"\r\n";]としても 構文エラーは発生しないのですが、この両者、[if (abc == def)]のように 比較してみると、どうやら文字コード自体は違う文字列として扱われる ようなのです。
質問------------------------------------------------------- 「エスケープシーケンスって何?」というところが よく分かっていないのが現状ですが、以下、質問させてください。 質問1)[@]付きの文字列と[@]無しの文字列、何が違うのか? 質問2)[@]付きの文字列を[@]無しの文字列に変換できないか? -----------------------------------------------------------
困っている事----------------------------------------------- XMLファイルから[\r\n](改行コード)付きの文字列を取得し それをグレープシティー社の[ElTabelle(エルタブレ)]にセット すると改行されず[\r\n]が文字列としてそのまま表示された。
原因は、文字列[\r\n]をC#.NETが「エスケープシーケンス文字」 として文字列を[@]付きにセットしていたため。 [@"\r\n"]→["\r\n"]に変換しElTabelleに入れると改行出来た。 以上のことから、[@"\"]→["\"]に変換するメソッドを作成したい。 -----------------------------------------------------------
以上、長文になりましたがよろしくお願い致します。
|
0
|