公开库类中的枚举

本文关键字:枚举 | 更新日期: 2023-09-27 17:47:21

在C#中,我正在使用一个定义枚举的库。 我想允许我的代码的使用者(在不同的程序集中)将枚举值作为参数传递给我的一个函数,而不必引用基础库本身。

有没有办法向我的使用者公开库的枚举?

公开库类中的枚举

您可以使用要支持的值定义自己的枚举,将其公开给使用者,并在调用之前将其转换为库的枚举。由于枚举只是幕后的数字,因此很容易将一个枚举的值转换为另一个枚举的值。

您可以提供一个采用 int 的重载,描述哪些值有效,然后自己执行强制转换。 或者,可以在库中提供不同的枚举,然后在调用第二个库之前对其进行转换。

真的不知道,这样做是哪个合理的原因("来自我的程序集中的类型的消费者调用方法"和"消费者没有我的程序集作为参考"的组合),但有两种方法。

第一个(推荐):应将程序集一分为二。一个带有枚举类型定义,第二个带有函数。使用者将仅引用"第一个"程序集。

第二种(不推荐):您可以在参数中使用 (sbyte/(u)short/(u)int/(u)long 代替枚举。

但我认为,你有一个对象模型的不匹配设计。