2013-07-20 46 views
0
的方法

我試圖做的方法,如本與使用的TryParse最小和最大限制

public static bool GetInteger(string stringToConvert, out int intOutValue, int minLimit, int maxLimit) 

我希望它檢查值的最小和最大範圍內,我與指定範圍內在值。解析只是

  int.TryParse(stringToConvert, out intOutValue) 

但我該如何檢查「intOutValue」的值是否在範圍內?它一直告訴我,這是一個布爾價值... 任何關於如何做到這一點的幫助將大大appriciated! (我很新編程,特別是在C#)

回答

1

如果你想基於調用TryParse的結果做比較,那麼這其中就有你的問題。返回一個布爾值來表示成功與否(因此嘗試)。因此,您需要比較inOutValue,因爲這是已填充的內容。

public static bool GetInteger(string input, out int result, int min, int max) { 
    return int.TryParse(input, out result) && (result >= min && result <= max); 
} 

沒有必要爲out PARAM這裏,我甚至想說的方法命名是壞的,除非你真正想要的值是事後訪問。

+0

啊,這是我的問題!我試圖比較錯誤的東西。謝謝。 – Ibyc

+0

也是的,我想要的價值是可以訪問我打算在其他程序(Windows窗體等)使用它,以便我可以轉換整數和字符串雙打。 編輯:有沒有什麼辦法可以重載此方法只使用最小值,沒有最大值(只是傳遞maxvalue)?或者我需要一個全新的方法嗎? – Ibyc

0

它看起來像你想檢查它是否也在給定的範圍,以及一個有效的整數。在這種情況下,你可以這樣做:

public static bool GetInteger(string stringToConvert, out int intOutValue, int minLimit, int maxLimit) 
{ 
    bool parsed = int.TryParse(stringToConvert, out intOutValue); 
    return parsed && intOutValue >= minLimit && intOutValue <= maxLimit; 
} 
+0

啊哈,明白了。感謝代碼示例。 – Ibyc

+0

這不起作用,因爲'Parse'返回一個整數。 –

+0

@GrantThomas - 是的,我的意思是'TryParse',謝謝。 – Lee

相關問題