c# - 如何避免在 C# 命名空间中定义冗余枚举?

标签 c# enums namespaces

一边刷一边 enum s,我在 MSDN Developer Network's site 遇到了以下问题.

Usually it is best to define an enum directly within a namespace so that all classes in the namespace can access it with equal convenience. However, an enum can also be nested within a class or struct.



这是有道理的,因为我需要所有枚举都可用于我项目中的所有类。但是,我似乎找不到任何示例。这是我到目前为止所拥有的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace myNamespace
{
    enum foo {A, B, C, D}
    enum foo2 {E, F, G, H}

    class Myclass
    {
          magicHappens();
    }
}

我想知道我是否需要在我包含在这个命名空间中的每个文件中都包含枚举,或者如果只在一个文件中定义它会在编译时将这些枚举定义作为一个整体拉入项目中?是否有一个特定的类需要它?还是创建一个只定义命名空间级枚举的文件的最佳实践?

任何提示将不胜感激。

最佳答案

在自己的源文件中定义每个枚举(例如 foo.cs )。只要命名空间与您的类相同,它就可以在您的其他代码文件中使用。

Foo.cs:

namespace myNamespace
{
    public enum foo
    {
        A = 0,
        B,
        C,
        D,
    }
}

Foo2.cs:
namespace myNamespace
{
    public enum foo2
    {
        E = 0,
        F,
        G,
        H,
    }
}

等等。

关于c# - 如何避免在 C# 命名空间中定义冗余枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23170515/

相关文章:

c# - 如何通过在 ToolStripSplitButton 上移动鼠标来打开 ToolStripMenuItem 窗口

c# - SSIS ExecutePackageTask 在 SQL Server 2016 中不可用

c# - 我如何实现这个公共(public)可访问枚举

postgresql - 如何在 PostgreSQL 9.2 中实现(或模拟)子类型多态性?

php - Composer 不会自动加载

c# - 我可以在 C# 中获取每个正则表达式组匹配计数吗?

c# - .NET,每分钟(每分钟)发生一次事件。计时器是最好的选择吗?

java - 基于字符串内容的枚举 valueof

c# - 物理或逻辑分离我的 dll?

php - 如何使用 PHP 根据嵌套命名空间数组中的值对数组进行排序