2009-06-24 15 views
5

Sono tenuto a mantenere alcune app VB6, e ho incontrato un problema strano quando si tratta di nomi di enumerazione. Il modo in cui Intellisense in VB6 dovrebbe funzionare è che se il mio nome di variabile è definito come Dim Abraxis come String, e scrivo abraxis durante la codifica, l'IDE lo cambia in Abraxis al volo mentre lascio la parola. Tuttavia, ho trovato che se ho un'enumerazione impostato in questo modo, per esempio:VB6 IDE sta cambiando il caso dei miei nomi di enumerazione

Public Enum tiErrorEnum 
    tiNone = 0 
    tiWarning 
    tiError 
    tiDupDoc 
End Enum 

e io uso una delle enumerazioni in una dichiarazione, come ad esempio

ErrorNum = tinone 

aspettandosi l'involucro a essere riparato dall'IDE, non cambia tinone in tiNone, ma cambia il def del membro enum in tinone! Esattamente indietro!

C'è una soluzione?

risposta

12

Sì, c'è. È un po 'strano, e probabilmente vorrai commentare perché lo stai facendo nel tuo codice, quindi gli sviluppatori del futuro non ne rimangono perplessi, ma ecco cosa vuoi fare. Aggiungi le enumerazioni come elementi pubblici all'interno di un blocco di codice di direttiva del compilatore (in modo che il compilatore non possa vederlo, ovviamente). Dovresti farlo preferibilmente subito sotto la dichiarazione di enumerazione, in questo modo:

Public Enum tiErrorEnum 
    tiNone = 0 
    tiWarning 
    tiError 
    tiDupDoc 
End Enum 
#If False Then 
    Public tiNone 
    Public tiWarning 
    Public tiError 
    Public tiDupDoc 
#End If 

Semplice. L'IDE riconoscerà e manterrà correttamente i nomi dell'enumerazione e il compilatore ignorerà il blocco.

+0

+1 - Vorrei aver pensato a tutto ciò anni fa – Kev

+0

Ho visto che succedeva e non avrei mai capito come aggirarlo. Adoro la tua soluzione, molto hackerata. –

+0

@Manuel, apprezzo il commento, ma credito in merito al credito: ho imparato questo da un altro sviluppatore che è molto più intelligente di me. – Cyberherbalist

1

Questo è un bug nell'editor. Mi sembra di ricordare che se si digita il nome di un enum anziché usare l'intellisense, cambia il caso del nome del valore enum nella dichiarazione.

1

Il trucco è quello di qualificare sempre le vostre enumerazioni:

tiErrorEnum.tiDupDoc 

Intellisense poi elencare correttamente l'enumerazione dopo aver premuto dot. Penso che questo aiuterà anche la leggibilità del codice se la numerazione è ben denominata.

Problemi correlati