2

CPSLibrary クラス ライブラリに存在する私の Enums.cs ファイルは次のとおりです。

namespace CPSLibrary.CPSEnums
{
    public enum GoalType
    {
        STRATEGIC = 1,
        TACTICAL = 2
    }
}

CPSLibrary を参照する Web アプリケーション内のコード ビハインド ファイルでは、次のことを行っています。

using CPSLibrary;

/*  ... farther down the page ... */
proj.Goal == CPSLibrary.CPSEnums.GoalType.STRATEGIC;

それは機能しますが、 CPSEnums.GoalType.STRATEGIC のように参照しようとすると、うまくいきません。さらに、「using CPSLibary.CPSEnums」を追加すると、単に GoalType.STRATEGIC として参照できます。

CPSEnums.GoalType.STRATEGIC を認識させるにはどうすればよいですか?

奇妙なことに、CPSLibrary クラス ライブラリを使用する他のクラスは、それを CPSEnums.GoalType.STRATEGIC として参照できます。

おまけの質問: この例では、「CPSEnums」には専門用語がありますか? 「コンテナ」か何か?それとも、別個の用語のない名前空間の一部にすぎませんか?

ティア

4

3 に答える 3

4

usingステートメントをこれに変更してみてください...

using CPSEnums = CPSLibrary.CPSEnums; 

これにより、必要な方法で参照できるようになります...

/*  ... farther down the page ... */
proj.Goal == CPSEnums.GoalType.STRATEGIC;
于 2013-07-25T21:13:38.650 に答える
0

名前空間の名前はCPSLibrary.CPSEnumsであるため、次のように書くこともできます。

using CPSLibrary.CPSEnums;
....
proj.Goal == GoalType.STRATEGIC; //NO NAMESPACE NAME

を記述するときusing CPSLibraryは、定義した名前空間の「親」名前空間を参照します。これは完全に有効です。ただし、列挙型にアクセスするには、その名前空間を指定する必要があり、その名前空間は次のとおりです。CPSLibrary.CPSEnums

于 2013-07-25T21:10:48.240 に答える
0

これを試して:

namespace CPSLibrary
{
    public static class CPSEnums
    {
        public enum GoalType
        {
            STRATEGIC = 1,
            TACTICAL = 2
        }
    }
}


var x = CPSEnums.GoalType.STRATEGIC;
于 2013-07-25T21:17:28.347 に答える