2010-08-21 153 views
2

我有一個類,我用它來記錄一個給定的時間間隔值。即0和1之間的值可能是0.5,1到5可能是1,5到100可能是5.但是我希望將這些信息存儲在使用泛型的類中。vb.net比較泛型類型

所以,當我試圖找出在一定的區間值,我想能夠在一個函數調用此類

Public Function getStepSize(ByVal value As T) As U 
    For Each s As StepSizeSector(Of T, U) In _sectors 
     If value >= s.from AndAlso value <= s.to Then Return s.stepSize 
    Next 
End Function 

其中T是類型爲間隔邊界和U是間隔的實際值。

當我這樣做,我得到一個錯誤說操作員「> =」未在類型「T」和定義的「T」

我怎麼能強迫該比較發生?我只會使用允許進行比較的類型,即Integer,Double,Decimals等。

是否有辦法顯式地告知編譯器一個類型具有這些比較運算符?

感謝您的幫助, 關心。

回答

2

所有類型都實現了IComparable(Of T),因此您需要將此約束添加到泛型類型定義中,並用CompareTo()調用替換比較運算符。