Bagaimana Anda mendeklarasikan literal Char dalam Visual Basic .NET?

91

Dengan Option Strict On:

Dim theLetterA As Char = "A"

mengembalikan kesalahan tentang mengubah string "A"menjadi Char.

Apa sintaks untuk memasukkan Charliteral?

Jason Berkan
sumber

Jawaban:

160

Literal karakter dimasukkan menggunakan string karakter tunggal yang diakhiri dengan a C.

Dim theLetterA As Char = "A"C
Jeff Mercado
sumber
20
Itu sangat menyebalkan, melanggar setiap konvensi! Terima kasih atas bantuan Anda
Alvaro
3
Sebenarnya sufiks literal untuk menunjukkan tipe sudah setua C dan Basic meskipun bukan untuk tipe terkait string, dan saya juga merasa agak meragukan saat pertama kali melihatnya.
Swanny
9
Saya perlu menggunakan "" "" C untuk memangkas kutipan dari sebuah string. Jelek sekali.
Matt
13
Ini membuatku mati sedikit di dalam.
Inspektur Squirrel
4
Huruf kecil 'c' juga berfungsi. Sedikit kurang jelek. Ini tidak jauh berbeda dengan menyatakan misalnya string Python sebagai literal unicode, bukan?
akta02392
5

Saya akan menggunakan CChar. Misalnya:

 Dim theLetterA As Char = CChar("A")

Periksa situs web MSDN https://msdn.microsoft.com/en-us/library/s2dy91zy.aspx untuk detail tentang CChar.

Alan Barksdale
sumber
Layak mendapatkan lebih banyak suara positif. Seorang char ctor lebih masuk akal daripada dekorator string yang belum pernah saya lihat sebelumnya.
RJB
19
@RJB: Anda mungkin lebih menyukai sintaksnya, tetapi faktanya ini bukan literal karakter. Ini adalah pernyataan yang melakukan konversi runtime dari string menjadi karakter. Tidak sama sama sekali.
sstan
2
Saya setuju. ini adalah kode VB lama dan membutuhkan referensi visualbasic. Cara yang benar adalah dengan menggunakan kelas konversi. Convert.ToChar ("A")
Kevbo
@sstan Saya tidak memiliki pernyataan resmi, tetapi sangat mungkin ancaman kompilator yang diurutkan sebagai karakter literal ("A" c) pada waktu kompilasi.
II ARROWS
@Kevbo - itu masih aksi runtime, bukan literal karakter. Mungkin tidak efisien. Lebih penting lagi, lebih bertele-tele. Bagaimana Convert.ToChar("A")perbaikan keterbacaan berakhir "A"c?
ToolmakerSteve
2

Dalam kasus mencoba mendapatkan kutip ganda sebagai literal karakter, Anda harus menggunakan format VB yang sangat unik:

Dim theQuote As Char = """"C

Atau

Dim theQuote As Char = CChar("""")
andyb
sumber
1
Tergantung definisi Anda tentang terbaca, saya kira. Saya biasanya menghindari "angka ajaib" sendiri, dan meskipun ekspresi VB adalah AF yang unik, Anda tidak perlu menarik tabel ASCII untuk memeriksa kebenarannya.
andyb
Saya melihat. Saya rasa kode ASCII tidak "ajaib" ketika berbicara tentang CHAR karena itu adalah nomor sebenarnya yang dimiliki oleh CHAR. Karakter adalah angka. Jika Anda memeriksa memori untuk theQuoteAnda akan melihatnya 34.
HackSlash