2

私のレガシーコードにはこれがあります:

if (chgList != ABCHeader.ChangeListTypes.Always)

これが ABCHeader です - これはクラス (変数ではない) であり、非静的クラスです。

public class ABCHeader
{
    . . .

     public enum ChangeListTypes
     {
    ...
     }

chgList は次のように定義されます。

private ABCHeader.ChangeListTypes chgList = ABCHeader.ChangeListTypes.Always;

これは明らかにコンパイルされますが、この非静的クラス (ABCHeader) がこのように参照されているのは正しくないように思えます。このコードのどこかに奇妙な Null Reference Exception があるので、コードを調べてみると、これに遭遇しました。これは潜在的な問題ですか、それとも間違ったツリーを鳴らしているのでしょうか?

4

3 に答える 3

3

これには何も問題はありません。クラス名を使用して、クラス内のネストされた列挙型にアクセスします。

とは言っても、私は列挙型をクラス内にネストするのではなく、最上位に配置することを好みますが、そのようにしたい場合は、それが適切な構文です。

于 2013-04-09T21:00:35.047 に答える
3

この方法で列挙型を参照してもまったく問題ありません。これから null 参照例外を取得することはできません。

于 2013-04-09T21:00:44.617 に答える