私は変数名がユーザによって与えられたコードジェネレータを書いています。文字列がキーワードまたはタイプでないことをcで確認する方法#
以前の回答では、識別子が有効であるがキーワードをチェックしない場合は後者がキーワードをチェックしますが、コードに認識されているすべてのタイプをチェックするようには見えません。例えば How to determine if a string is a valid variable name?
、ユーザは変数List
、又はType
に名前を付けることができ、それは望ましくありません。どのように私はこれを防ぐだろうか?
など、あなたが主なキーワードをチェックし、必要に応じてそれらを否定するが、競合型情報のすべてを心配しないようにできますが、あなただけのコンパイルしようcouldntのでしょう実行時に何かエラーが発生した場合はコードを返します。 – asawyer
これは、 'using'を使ってコードに取り込んだ名前空間によって大きく変わることでしょう。さらに、これらの名前空間は新しいタイプを追加します。リフレクションを使用して、アセンブリ内のすべてのクラスを見つけることができます。 –
@asawyer:それは良い解決策かもしれません。 – user420667