Visual Basic .NETでCharリテラルをどのように宣言しますか?


89

Option Strict On

Dim theLetterA As Char = "A"

文字列の"A"aへの変換に関するエラーを返しますChar

Charリテラルを入力するための構文は何ですか?

回答:


158

文字リテラルは、接尾辞がC。の単一の文字列を使用して入力されます。

Dim theLetterA As Char = "A"C

19
それは本当にうんざりして、すべての慣習を破ります!あなたの助けをありがとう
アルバロ

3
タイプを示すリテラルのサフィックスは、文字列に関連するタイプではありませんが、CおよびBasicと同じくらい古いものです。また、初めて見たときは、少し疑わしいと感じました。
Swanny 2014年

9
文字列から引用符を削除するには、 "" "" Cを使用する必要がありました。なんて醜い。
Matt

11
これは私を少し死にました。
リスの検査官2016年

4
小文字の「c」も機能します。少し見苦しくない。これは、たとえばPython文字列をUnicodeリテラルとして宣言することと大差ありませんか。
-deed02392

4

CCharを使用します。例えば:

 Dim theLetterA As Char = CChar("A")

CCharの詳細については、MSDN Webサイトhttps://msdn.microsoft.com/en-us/library/s2dy91zy.aspxを確認してください。


より多くの賛成投票に値します。char ctorは、私が今まで見たことのない文字列デコレータよりも理にかなっています。
RJB 2015

18
@RJB:構文の方が好きかもしれませんが、実際にはこれは文字リテラルではありません。文字列から文字へのランタイム変換を実行するステートメントです。まったく同じではありません。
2015

2
同意する。これは古いVBコードであり、visualbasicリファレンスが必要です。正しい方法は、変換クラスを使用することです。Convert.ToChar( "A")
Kevbo

@sstan公式な声明はありませんが、コンパイル時に文字リテラル( "A" c)としてシーケンスするコンパイラの脅威である可能性が非常に高いです。
IIアローズ

@Kevbo-これは文字リテラルではなく、まだランタイムアクションです。おそらく非効率的です。さらに重要なことに、はるかに冗長です。Convert.ToChar("A")読みやすさはどう"A"cですか?
ToolmakerSteve 2018年

2

二重引用符を文字リテラルとして取得しようとする場合は、追加の風変わりなVB形式を使用する必要があります。

Dim theQuote As Char = """"C

または

Dim theQuote As Char = CChar("""")

1
読みやすさの定義に依存すると思います。私は通常、「マジックナンバー」を自分で避けています。VB式は奇抜なAFですが、ASCIIテーブルをプルアップして正しいことを確認する必要はありません。
andyb

そうですか。CHARの場合、ASCIIコードは「魔法」ではないと思います。CHARが保持する実際の数値だからです。charは数値です。あなたがあなたのためにメモリを調べるとしtheQuoteたら34
HackSlash
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.