C# 为什么这个名称空间命名约定不适用于我的枚举?
以下是CPSLibrary类库中存在的我的Enums.cs文件:C# 为什么这个名称空间命名约定不适用于我的枚举?,c#,namespaces,C#,Namespaces,以下是CPSLibrary类库中存在的我的Enums.cs文件: namespace CPSLibrary.CPSEnums { public enum GoalType { STRATEGIC = 1, TACTICAL = 2 } } 在引用CPS库的web应用程序中的代码隐藏文件中,我执行以下操作: using CPSLibrary; /* ... farther down the page ... */ proj.Goal =
namespace CPSLibrary.CPSEnums
{
public enum GoalType
{
STRATEGIC = 1,
TACTICAL = 2
}
}
在引用CPS库的web应用程序中的代码隐藏文件中,我执行以下操作:
using CPSLibrary;
/* ... farther down the page ... */
proj.Goal == CPSLibrary.CPSEnums.GoalType.STRATEGIC;
这会起作用,但如果我尝试像cpsenms.GoalType.STRATEGIC那样引用它,则不会。此外,如果我使用cplibary.cpsnums添加,那么我可以简单地将其引用为GoalType.STRATEGIC
我需要做什么才能识别cpsenms.GoalType.STRATEGIC
奇怪的是,其他使用CPSLibrary类库的类可以将其引用为cpsnums.GoalType.STRATEGIC
附加问题:在本例中,CPSENUM是否有一个技术术语?容器之类的?或者它只是名称空间的一部分,没有单独的术语
TIA因为您的命名空间名称是CPSLibrary.cpsnums,所以您甚至可以这样编写:
using CPSLibrary.CPSEnums;
....
proj.Goal == GoalType.STRATEGIC; //NO NAMESPACE NAME
当您使用CPSLibrary编写时,您将引用已定义名称空间的父名称空间。这是完全正确的。但要访问枚举类型,您需要指定其名称空间,其命名空间为:CPSLibrary.cpsnums,因为您的命名空间名称为CPSLibrary.cpsnums,所以您甚至可以这样编写:
using CPSLibrary.CPSEnums;
....
proj.Goal == GoalType.STRATEGIC; //NO NAMESPACE NAME
当您使用CPSLibrary编写时,您将引用已定义名称空间的父名称空间。这是完全正确的。但要访问枚举类型,需要指定其名称空间,其名称空间为:CPSLibrary.cpsnums请尝试将using语句更改为
using CPSEnums = CPSLibrary.CPSEnums;
这应该允许你以你想要的方式引用它
/* ... farther down the page ... */
proj.Goal == CPSEnums.GoalType.STRATEGIC;
尝试将您的using语句更改为
using CPSEnums = CPSLibrary.CPSEnums;
这应该允许你以你想要的方式引用它
/* ... farther down the page ... */
proj.Goal == CPSEnums.GoalType.STRATEGIC;
试试这个:
namespace CPSLibrary
{
public static class CPSEnums
{
public enum GoalType
{
STRATEGIC = 1,
TACTICAL = 2
}
}
}
var x = CPSEnums.GoalType.STRATEGIC;
试试这个:
namespace CPSLibrary
{
public static class CPSEnums
{
public enum GoalType
{
STRATEGIC = 1,
TACTICAL = 2
}
}
}
var x = CPSEnums.GoalType.STRATEGIC;
为什么要编写cpsenms.GoalType.STRATEGIC而不是GoalType.STRATEGIC?还有9次击键!我想这只是个人的一个怪癖——在某些事情上,比如enum,我喜欢在代码中看到一些组织,而不是停留在上面。为什么要编写cpsnums.GoalType.STRATEGIC而不是GoalType.STRATEGIC?还有9次击键!我想,这只是个人的一个怪癖——在某些事情上,比如枚举,我喜欢在代码中看到一些组织,而不是停留在它上面。我认为这可能是答案,但它没有解释为什么结构保留在类库本身中,但在编译时它似乎变平了。如果我在CPSSlibrary命名空间中的另一个类中,我可以使用CPSNums访问GoalType,但如果不引用CPSNums,我就不能直接访问GoalType。如果它真的是一个单独的名称空间,那么我需要一个使用CPSLibrary.cpsnums的名称空间来访问GoalType。在那里,它是一个文件夹式的结构,但一旦编译,所有这些都会消失吗?为什么会这样?我认为这是可能的答案,但它没有解释为什么结构保留在类库本身中,但在编译时它似乎变得平坦。如果我在CPSSlibrary命名空间中的另一个类中,我可以使用CPSNums访问GoalType,但如果不引用CPSNums,我就不能直接访问GoalType。如果它真的是一个单独的名称空间,那么我需要一个使用CPSLibrary.cpsnums的名称空间来访问GoalType。在那里,它是一个文件夹式的结构,但一旦编译,所有这些都会消失吗?为什么呢?