2008-10-22 3 views
1

В C# я использую библиотеку, которая определяет перечисление. Я хотел бы разрешить пользователям моего кода (в другой сборке) передавать значение enum в качестве параметра одной из моих функций без необходимости ссылаться на основную библиотеку.Вывод перечисления из класса библиотеки

Есть ли способ предоставить мне перечисление библиотеки моим потребителям?

ответ

7

Вы можете определить собственное перечисление со значениями, которые хотите поддержать, разоблачить это для своих потребителей и просто преобразовать их в перечисление библиотеки перед тем, как позвонить в него. Поскольку перечисления являются просто цифрами за кулисами, легко конвертировать значения одного enum в чужие.

+0

в течение одной минуты вы получили три взлетов и ответ? – Will 2008-10-22 11:28:07

3

Вы можете предложить перегрузку, которая принимает int, описать, какие значения действительны, а затем выполнить бросок самостоятельно. Кроме того, вы можете предложить другое перечисление в своей библиотеке, а затем преобразовать его перед вызовом во вторую библиотеку.

1

Я действительно не знаю, какая рациональная причина делает это (сочетание «метода потребительского вызова от типа в моей сборке» и «у потребителя нет моей сборки в качестве ссылки»), но есть два способа.

Первый (рекомендуется): Вы должны разделить свою сборку на две части. Один с определением типа перечисления, второй - с функциями. Потребители будут ссылаться только на «первую» сборку.

Второй (не рекомендуется):. Вы можете использовать (SByte/(и) короткий/(и) INT/(и) долго параметров вместо перечислений

Но я думаю, у вас есть несоответствие конструкции объектной модели.

Смежные вопросы