2008-10-22 70 views
1

在C#中,我使用定義枚舉的庫。我希望允許我的代碼的消費者(在不同的程序集中)將枚舉值作爲參數傳遞給我的一個函數,而無需自己引用底層庫。暴露庫類中的枚舉

有沒有辦法讓我的圖書館的枚舉公開給我的消費者?

回答

7

您可以用您想要支持的值定義您自己的枚舉值,將其展示給您的客戶,並在調用之前將其轉換爲庫的枚舉值。由於枚舉只是幕後的數字,所以很容易將一個枚舉的值轉換爲另一個值。

+0

在一分鐘內你有三起三的答案嗎? – Will 2008-10-22 11:28:07

3

您可以提供一個接受int的重載,描述哪些值是有效的,然後自己執行轉換。或者,您可以在庫中提供不同的枚舉,然後在調用第二個庫之前將其轉換。

1

我真的不知道,這是理性的原因是這樣做的(「我的程序集中的類型的消費者調用方法」和「消費者沒有我的程序集作爲參考」),但有2種方法。

第一個(推薦): 您應該將您的裝配拆分爲兩個。一個使用枚舉類型定義,另一個使用函數。消費者只會參考「第一」組裝。

第二(不推薦): 可以在參數而不是枚舉一個(爲sbyte /(U)短/(U)INT /(U)長期使用

但我認爲,你有一個對象模型的匹配設計。