2009-06-24 3 views
5

いくつかのVB6アプリケーションを維持する必要があります。列挙型の名前については奇妙な問題が発生しています。 VB6でのIntellisenseの動作方法は、変数名がDim Abraxisを文字列として定義し、コーディング中にabraxisと入力すると、IDEはAbraxisにその単語を残すように変更します。VB6 IDEは列挙型の名前を変更しています

Public Enum tiErrorEnum 
    tiNone = 0 
    tiWarning 
    tiError 
    tiDupDoc 
End Enum 

と私は、このような

にケーシングを期待
ErrorNum = tinone 

として、文で列挙型のいずれかを使用します。しかし、私は例えば次のように設定する列挙を、持っている場合は、そのIを発見しましたIDEで修正すると、tinoneをtiNoneに変更することはありませんが、enumメンバーのdefをtinoneに変更します。正確に後ろに!

回避策はありますか?

答えて

12

はい、あります。それは奇妙に見えますが、なぜコード内でこれをやっているのかについてコメントしたいのですが、将来の開発者はそれに困惑することはありませんが、ここではあなたがしたいことがあります。列挙子をパブリックアイテムとしてコンパイラ指示コードブロック内に追加します(コンパイラはそれを見ることはできません)。これは、次のように列挙宣言のすぐ下で行うことをお勧めします。

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

シンプルです。 IDEは列挙名を正しく認識して保持し、コンパイラはそのブロックを無視します。

+0

+1私は何年も前にそれについて考えていただろう – Kev

+0

私はそれが起こっているのを見て、それを回避する方法を理解できなかった。あなたの解決策を愛し、非常にハックします。 –

+0

@Manuel、私はコメントをありがたく思うが、クレジットの対象となるクレジット:私はこれよりもずっと賢い別の開発者からこれを学んだ。 – Cyberherbalist

1

これはエディタのバグです。私はintellisenseを使用するのではなくenumの名前をタイプすると、宣言のenum値の大文字と小文字を変更することを覚えているようです。

1

トリックはいつもあなたの列挙型を修飾することです:

tiErrorEnum.tiDupDoc 

インテリセンスは、正しくドットを押した後、列挙が一覧表示されます。私は列挙型がよくわかっていれば、これもコードの読みやすさを助けるだろうと思います。

関連する問題