在C#中,我使用的是定义枚举的库。我想允许我的代码(在不同的程序集中)的消费者将枚举值作为参数传递给我的一个函数,而不必自己引用底层库。
我有办法将库的枚举公开给我的消费者吗?
答案 0 :(得分:8)
您可以使用要支持的值定义自己的枚举,将其公开给您的消费者,并在调用之前将其简单地转换为库的枚举。由于枚举只是幕后的数字,因此很容易将一个枚举值转换为另一个值。
答案 1 :(得分:3)
你可以提供一个带有int的重载,描述哪些值是有效的,然后自己执行转换。或者,您可以在库中提供不同的枚举,然后在调用第二个库之前将其转换。
答案 2 :(得分:1)
我真的不知道,这个理性的原因是什么(组合中的“消费者来电方式”和“消费者没有我的集会作为参考”),但有两种方式。< / p>
第一个(推荐): 您应该将程序集拆分为两个。一个具有枚举类型定义,另一个具有功能。消费者只会参考“第一次”组装。
第二个(不推荐): 你可以在参数而不是枚举中使用(sbyte /(u)short /(u)int /(u)long。
但我认为,你的对象模型设计不匹配。