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.