Come si dichiara un letterale Char in Visual Basic .NET?


89

Con Option Strict On:

Dim theLetterA As Char = "A"

restituisce un errore sulla conversione della stringa "A"in un file Char.

Qual è la sintassi per inserire un Charletterale?

Risposte:


158

Un letterale carattere viene immesso utilizzando una stringa di caratteri singola con suffisso a C.

Dim theLetterA As Char = "A"C

19
Fa davvero schifo, rompe ogni convenzione! Grazie per il tuo aiuto
— Alvaro

3
In realtà il suffisso letterale per indicare il tipo è vecchio quanto C e Basic, anche se non per i tipi correlati alle stringhe, e anch'io ho sentito che era un po 'dubbioso la prima volta che l'ho visto.
— Swanny

9
Avevo bisogno di usare "" "" C per tagliare le virgolette da una stringa. Che brutto.
— Matt

11
Questo mi ha fatto morire un po 'dentro.
— Ispettore Squirrel

4
Anche la "c" minuscola funziona. Un po 'meno brutto. Questo non è molto diverso dal dichiarare, ad esempio, le stringhe Python come letterali unicode, vero?
— 02392

4

Userei CChar. Per esempio:

 Dim theLetterA As Char = CChar("A")

Controllare il sito Web MSDN https://msdn.microsoft.com/en-us/library/s2dy91zy.aspx per i dettagli su CChar.


Merita più voti positivi. Un personaggio ha più senso di un decoratore di archi come non ho mai visto prima.
— RJB

18
@RJB: Potrebbe piacerti di più la sintassi, ma il fatto è che questo non è un carattere letterale. È un'istruzione che esegue una conversione in runtime da una stringa a un carattere. Non è affatto la stessa cosa.
— sstan

2
Sono d'accordo. questo è il vecchio codice VB e richiede il riferimento visualbasic. Il modo giusto è usare la classe convert. Convert.ToChar ("A")
— Kevbo

@sstan Non ho alcuna dichiarazione ufficiale, ma è molto probabile che il compilatore minacci quella sequenza come carattere letterale ("A" c) in fase di compilazione.
— II FRECCE

@Kevbo: è ancora un'azione di runtime, invece di un carattere letterale. Probabilmente inefficiente. Ancora più importante, molto più prolisso. Come si Convert.ToChar("A")conclude un miglioramento della leggibilità "A"c?
— ToolmakerSteve

2

Nel caso in cui provi a ottenere una virgoletta doppia come carattere letterale, dovrai utilizzare il formato VB extra eccentrico:

Dim theQuote As Char = """"C

O

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

1
Dipende dalla tua definizione di leggibile suppongo. Di solito evito io stesso i "numeri magici" e, sebbene l'espressione VB sia bizzarra AF, non dovresti mai tirare su una tabella ASCII per verificare che fosse corretta.
— andyb

Vedo. Non penso che il codice ASCII sia "magico" quando si parla di un CHAR perché questo è il numero effettivo detenuto dal CHAR. Un carattere è un numero. Se dovessi ispezionare la memoria per theQuotete, vedresti 34.
— HackSlash
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.