c# - 公开枚举
问题描述
我正在制作一个只有 1 个类的 C# 库,它应该充当某些 Web 服务的外壳。
这些服务有自己的类和枚举。
在我的一些函数中,一些参数应该是来自网络服务的枚举(这样做最容易)。
但是,当我需要从使用相关库的代码中调用该函数时,它最终会是这样的:
LibraryClass.FunctionName(LibraryName.WebServicesName.EnumName.EnumValue);
是否可以使代码看起来更像这样:
LibraryClass.FunctionName(EnumName.EnumValue);
通过在库类中从 Web 服务中公开枚举?
我知道我可以通过在库类中创建自己的 Enum 来做到这一点,我可能会这样做,但是这个问题闪过我的脑海,我在这里停下来问:是否可以像这样公开枚举?
解决方案
通过using static
C# 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}
}
}
推荐阅读
- python - 使用 BS4 提取元素
- c++ - Assimp 更新到 5.0.1 问题与骨骼 mname 和 mnumweights
- c++ - g ++显示未初始化变量的警告而不优化变量
- bash - 尝试使用参数扩展进行字符串替换时出现错误替换
- r - 如何提高 RMarkdown html_document() 中的绘图质量?
- reactjs - 将字符串转换为反应组件
- volttron - VOLTTRON Csv Driver Agent 计划任务
- python-3.x - AttributeError: 'function' object has no attribute 'insert' while writing Tkinter GUI for Reverse Polish Notation
- linker-errors - 使用 Embarcadero 的 C++ builder 编译时出现链接器错误,LME200 ilink32.exe
- javascript - 为什么没有将值插入表中