我得到十六進制值,需要知道我的(參數是INT)是否在值的範圍內。 例如:檢查參數int是否在十六進制範圍內?
public bool IsInTheRange(int parameter) {
string range = "0A-0F";
return = ????
}
如何檢查,如果該參數是0A-0F的範圍是多少?
我得到十六進制值,需要知道我的(參數是INT)是否在值的範圍內。 例如:檢查參數int是否在十六進制範圍內?
public bool IsInTheRange(int parameter) {
string range = "0A-0F";
return = ????
}
如何檢查,如果該參數是0A-0F的範圍是多少?
請問範圍真的需要被指定爲字符串?
public bool IsInTheRange(int parameter)
{
int rangeMin = 0x0A;
int rangeMax = 0x0F;
return (parameter >= rangeMin) && (parameter <= rangeMax);
}
......如果它確實需要一個字符串,那麼你仍然需要解析字符串到最小和最大範圍:
public bool IsInTheRange(int parameter)
{
string range = "0A-0F";
string rangeArray = range.Split('-')
.Select(x => int.Parse(x, NumberStyles.HexNumber))
.ToArray();
return (parameter >= rangeArray[0]) && (parameter <= rangeArray[1]);
}
是的,它必須這樣做,因爲範圍實際上來自配置文件。 – Erez 2011-03-08 13:06:46
有點脆(假定範圍是在一個良好的格式等):
public bool IsInTheRange(int parameter)
{
string range = "0A-OF";
int min = int.Parse(range.Split('-')[0], System.Globalization.NumberStyles.HexNumber);
int max = int.Parse(range.Split('-')[1], System.Globalization.NumberStyles.HexNumber);
return parameter >= min && parameter <= max;
}
public static bool IsInTheRange(int parameter)
{
string range = "0A-0F";
var tokens = range
.Split('-')
.Select(x => int.Parse(x, NumberStyles.HexNumber))
.ToArray();
return tokens[0] <= parameter && parameter <= tokens[1];
}
是字符串靜態的,也可以是外部配置?如果它是靜態的,你可以用一種明顯的方式重寫函數,它根本不使用字符串...... – Christoffer 2011-03-08 12:41:02