首页 > 解决方案 > 公开枚举

问题描述

我正在制作一个只有 1 个类的 C# 库,它应该充当某些 Web 服务的外壳。

这些服务有自己的类和枚举。

在我的一些函数中,一些参数应该是来自网络服务的枚举(这样做最容易)。

但是,当我需要从使用相关库的代码中调用该函数时,它最终会是这样的:

LibraryClass.FunctionName(LibraryName.WebServicesName.EnumName.EnumValue);

是否可以使代码看起来更像这样:

LibraryClass.FunctionName(EnumName.EnumValue);

通过在库类中从 Web 服务中公开枚举?

我知道我可以通过在库类中创建自己的 Enum 来做到这一点,我可能会这样做,但是这个问题闪过我的脑海,我在这里停下来问:是否可以像这样公开枚举?

标签: c#enums

解决方案


通过using staticC# 6 中新增的功能,您可以轻松完成您想要的。

using static LibraryName.WebServicesName;

这将允许您将类的静态成员Library.WebServicesName及其嵌套类和枚举导入您自己的命名空间。

示例用法

using System;
using static LibraryName.WebServicesName;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(EnumName.Foo);
    }
}

namespace LibraryName
{
    class WebServicesName{

        public enum EnumName { Foo, Bar}
    }
}

推荐阅读