Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将枚举设置为C#类中的另一个枚举_C#_.net_Class_Enums - Fatal编程技术网

将枚举设置为C#类中的另一个枚举

将枚举设置为C#类中的另一个枚举,c#,.net,class,enums,C#,.net,Class,Enums,我目前正在开发一个C#程序,该程序使用了相当多的枚举。它的组织方式是,一个类包含许多枚举,其中有几个类。但是,两个枚举之间有一对相同的枚举——出于组织目的,最好有一个“SharedEnums”类,然后执行如下操作: public class FirstEnumCollection { public enum Fruits = SharedEnums.Fruits; //insert non-shared enums here } public class FirstEnumCo

我目前正在开发一个C#程序,该程序使用了相当多的枚举。它的组织方式是,一个类包含许多枚举,其中有几个类。但是,两个枚举之间有一对相同的枚举——出于组织目的,最好有一个“SharedEnums”类,然后执行如下操作:

public class FirstEnumCollection {
    public enum Fruits = SharedEnums.Fruits;
    //insert non-shared enums here
}

public class FirstEnumCollection {
    public enum Fruits = SharedEnums.Fruits;
    //insert non-shared enums here
}

public class SharedEnums { 
    public enum Fruits {
        Apple,
        Pear
    }
}

这样,我们就不会在类之间多次声明相同的枚举,而更改共享枚举将更改这两个类中的枚举。我已经尝试了我的示例的几个变体,但运气不佳,我相当确定它无法完成,但希望得到确认。

一个
enum
不需要“属于”一个类。您可以在任何类之外声明它:

public enum Fruits {
    Apple,
    Pear
}

然后在任何类中使用它

一个
enum
不需要“属于”一个类。您可以在任何类之外声明它:

public enum Fruits {
    Apple,
    Pear
}

然后在任何类中使用它

可以在命名空间范围内定义枚举,您不需要在类内创建枚举。您可以想象一个枚举,比如一个结构或一个类,它是您可以在代码中使用的类型。因此,在名称空间范围中定义它

namespace MyCode
{
    public enum Days { M, T, W, T, F, Sa, Su }
}

枚举可以在命名空间范围内定义,不需要在类内创建枚举。您可以想象一个枚举,比如一个结构或一个类,它是您可以在代码中使用的类型。因此,在名称空间范围中定义它

namespace MyCode
{
    public enum Days { M, T, W, T, F, Sa, Su }
}

为什么不直接使用它?您甚至不需要将枚举放在类中为什么不直接使用它?您甚至不需要将枚举放在类中该类更像是一个组织工具--所有枚举都在某些“MyEnums”命名空间中声明,每个类都表示枚举将在应用程序中使用的位置(我在这里对名称进行了简化)。因此,枚举从不直接在“FirstEnumCollection”中使用,而是由其他类使用。在这种情况下,不需要将类用作命名空间。这对于常量是必需的,但对于枚举不是必需的。名称空间的存在主要是为了这个目的。但是当你有两个同名的实体时,它们主要会消除歧义。但是,如果有两个相同的枚举,并且希望将其中一个设置为另一个相等,则不需要这样做。只是增加了维护。最好只有一个。该类更像是一个组织工具,而不是任何东西——所有枚举都在一些“MyEnum”命名空间中声明,每个类都表示枚举将在应用程序中使用的位置(我在这里对名称进行了简化)。因此,枚举从不直接在“FirstEnumCollection”中使用,而是由其他类使用。在这种情况下,不需要将类用作命名空间。这对于常量是必需的,但对于枚举不是必需的。名称空间的存在主要是为了这个目的。但是当你有两个同名的实体时,它们主要会消除歧义。但是,如果有两个相同的枚举,并且希望将其中一个设置为另一个相等,则不需要这样做。只是增加了维护。最好只买一个。