所以,让我说我在集会A中有这个枚举:
// In assembly A
public enum MyEnum { MyValueA = 1, MyValueB = 2 }
这个方法在组件B上(组件B有组件A作为参考)
// In Assembly B
public void DoSomething(MyEnum value)
{
// Do Something
}
如果我知道该值并且我编写了引用程序集B的程序集C,那么我有什么理由不这样做?有办法吗?
// In assembly C
DoSomething(1);
我知道这不是一个好习惯。
非常感谢!
编辑:主要是我想知道为什么我不能。我知道有100种方法,但我想知道一种方法而不涉及组件A而不添加任何引用。答案 0 :(得分:1)
枚举可以用int表示,我们得到它。实际的选择"枚举的定义虽然是由程序集A定义的,但如果程序集C需要枚举,如果不引用程序集A,它将如何知道什么是有效值?你的枚举不是框架的已知类型,那么如果没有引用,C怎么可能知道呢?
您需要从C中引用程序集A,或者可能创建另一个可能包含枚举的程序集,并由A和C引用。
答案 1 :(得分:0)
您可以将int作为参数而不是Enum。汇编A的枚举传递的值应该是正确的,但是汇编B会编译,因为它不需要知道MyEnum类型