2011-01-02 16 views
4

1文字のASCII 127を含むcharまたは文字定数をどのように作成しますか?C#でASCII 127の文字定数または文字列定数をどのように定義できますか?

// Normal printing character - no problems 
const char VPIPE = '|'; 
//error "The expression being assigned to 'DEL' must be constant" 
const char DEL = new string(127, 1); 

定数ではなく文字の文字列だった場合にもOKのようになります。

const string VPIPE = "|"; 
const string DEL = "???"; 

私はASCII 127を使用して、キーボードで「タイプ」できるものではないことを知っている、それだけには存在していそれから文字列または文字定数を作成する方法です(または見つからない組み込みのものを使用する)。

+0

私はコンストラクタのような定数を初期化することができると信じています。 –

答えて

5

この

const char s = ((char)127); 
+0

ありがとうございます。私はあなたの反応を見る直前にそれを得ました。ありがとう! – Flipster

+0

問題ありません。お役に立てて嬉しいです! – Exoas

+0

遅く受け入れて申し訳ありません。私がコメントを投稿したときにそれをしたと思った... – Flipster

9

'\x7F'(必要に応じて文字列に埋め込むこともできます)。

+1

'\ x'エスケープシーケンスを避ける理由から私の答えを見てください。 –

2

は気にしないでみてください。私はその1つのトリガで少し速かった。

const char DEL = (char)127; 
7

個人的に私はエスケープシーケンス「uは\」を使用します。

const char Delete = '\u007f'; 

私は「\ x」の他の場所で言及したエスケープシーケンスに熱心ではないよ - それはには、あまりにも悪いことではありません

// Tab the output 
Console.WriteLine("\x9Good line"); 
Console.WriteLine("\x9Bad line"); 

A:文字リテラル(複数の文字=>コンパイルエラー)、それは文字列リテラルために厄介なことができますバグを見ることができます。「ちょっとした変更」をするときに、それを避けていたのはどういうことでしょうか?

私は文字列リテラルでは避けているので、一貫性があり、どこでも "\ u"を使って16進値をエスケープしたいと思うと思います。

+0

偉大な答え、ジョンと私は同意する(と私は9Gと9Bの間のバグを参照してください)私はそれのような隠されたバグが嫌いです。ところで、聖なる#$ ^#!それはあなたの本当の得点ですか?あなたはサイトの創設者の一人ですか、それとも1972年のころからここにいましたか?笑。 – Flipster

+0

@FlipScript:これはUnicode世界であることを忘れないでください。後者は実際にUnicode U + 9BADを使用します:)これは私の本当の得点です。私はベータ版でもありませんでした。私はポスト "かなりたくさん"しかし:) –

関連する問題