【发布时间】:2014-06-27 12:16:09
【问题描述】:
我有两个项目引用相同的预编译 (C#) dll。 此 .dll 在其命名空间中包含一个公共枚举,但是: 两个项目都必须在这个枚举中使用不同的值。
是否有可能定义类似的东西? (伪代码)
namespace module
{
#if ConfigurationManager.AppSettings["project"] == "Extern"
public enum Roles
{
Admin = 0,
User = 1,
Vip = 2
}
#else /* "Intern" */
public enum Roles
{
Admin = 0,
Staff = 1,
User = 2
}
#end
}
重要提示:此代码必须经过预编译,因此无法使用预处理器指令。
【问题讨论】:
-
作为忠告,所有
enums 本质上都是静态的,因此没有必要像这样“重新声明”它们。 stackoverflow.com/questions/4567868/… -
似乎真的具有误导性,即使我想知道是否可能,我也不确定..
-
我认为
public static enum中的static没有为您做任何事情或不起作用 - troubles declaring static enum, C# -
是的,它们不需要是静态的 :)(已编辑问题)
-
你不能拥有一个不同的枚举,具体取决于使用它的对象(或谁)。这没有意义。
标签: c# precompiled