2011-04-18 108 views
3

我正在寫一個軟件,它使用不同類型的整數(uint,short,ushort,byte等)進行操作。問題是這些數字的類型可能會發生變化,或者在某些情況下需要這些類型的不同組合。問題是:處理這種情況的最佳做法是什麼?我可以想到使用#define或通用類。但是對於泛型類型沒有任何合適的限制。從具體的整數類型抽象

編輯:整數用於不同硬件的配置文件。他們可能使用不同的endians或不同類型的整數。

+1

「我寫這與不同類型的整數操作的軟件」

一個using別名可能的幫助。這可能意味着什麼 – 2011-04-18 07:42:57

回答

5

對於仿製藥,您可以在此處使用的最佳約束條件是:struct,這不是非常有限制不允許您訪問任何有用的內容。如果問題是運營商,那麼周圍有各種各樣的黑客; MiscUtil爲泛型提供了操作員支持,或者dynamic也可以工作(幾乎一樣快,只要您不使用Nullable<T>)。也許你應該更明確 - 如果你需要的編譯時間,即(每個文件)

using Number = System.Int32; 
+0

+1我完全忘記了'動態',好喊。 – 2011-04-18 07:49:48

+0

+1與往常一樣,簡明扼要並且有助於各種方法 – bitxwise 2011-04-18 07:51:39

1

值類型不能用這樣的泛型抽象出來,沒有共同的基礎給你任何有用的功能。您最好圍繞.NET中的值類型創建自己的結構,並將它們編碼爲讓操作員彼此協作。顯然,你對這些結構的處理取決於你選擇給他們的行爲。

有了這些包裝結構,您還可以定義一個共同的基礎,爲您提供有用的東西。