2
我正在寫一個RationalNumber類在C#中,並希望使它通用,但只允許整數(INT,字節,UInt32,我自己的BigInt類...)作爲輸入 - 它基於浮動或像Control這樣的常規對象有理性的數字是沒有意義的。通用只允許整數作爲類型參數
但是,在聲明類時似乎並沒有濾除非整數類型。
我忽略了什麼?
我正在寫一個RationalNumber類在C#中,並希望使它通用,但只允許整數(INT,字節,UInt32,我自己的BigInt類...)作爲輸入 - 它基於浮動或像Control這樣的常規對象有理性的數字是沒有意義的。通用只允許整數作爲類型參數
但是,在聲明類時似乎並沒有濾除非整數類型。
我忽略了什麼?
不,你不能。
而且還有另外一個問題,即沒有arithmetic
約束。所以沒有靜態類型的方法來使用你的類型參數的操作符。所以你需要使用動態的更慢(除非他們自.NET 3.5以來改進了運行時間/抖動)。
一些具有類似問題的項目根本沒有使類具有通用性,而是使用代碼生成器來改爲專用類。