По какой-то причине, когда я запускаю метод «test», я получаю ложный результат. Я использовал часть кода из моего другого вопроса о генерации случайных чисел, который, как я подтвердил, работает, но с дополнительными проверками безопасности.Номер не является номером?
public class strUtls
{
public void test()
{
var maybe = 40000000f * 40000000f;
bool number = isNumber(maybe);
}
public bool isNumber(object O)
{
// INT16,INT32,INT64,DOUBLE,FLOAT
if (upper(O.GetType().ToString()).Contains("INT") || upper(O.GetType().ToString()).Contains("DOUBLE") || upper(O.GetType().ToString()).Contains("FLOAT"))
{
return true;
}
else
{
return false;
}
}
private string upper(string s)
{
try
{
for (int i = 0; i < s.Length; i++)
{
s = s.Replace(s[i], upper(s[i]));
}
return s;
}
catch (IndexOutOfRangeException)
{
return s;
}
}
private char upper(char S)
{
switch (s)
{
case ('a'):
return 'A';
break;
case ('b'):
return 'B';
break;
case ('c'):
return 'C';
break;
case ('d'):
return 'D';
break;
case ('e'):
return 'E';
break;
case ('f'):
return 'F';
break;
case ('g'):
return 'G';
break;
case ('h'):
return 'H';
break;
case ('i'):
return 'I';
break;
case ('j'):
return 'J';
break;
case ('k'):
return 'K';
break;
case ('l'):
return 'L';
break;
case ('m'):
return 'M';
break;
case ('n'):
return 'N';
break;
case ('p'):
return 'O';
break;
case ('o'):
return 'P';
break;
case ('q'):
return 'Q';
break;
case ('r'):
return 'R';
break;
case ('s'):
return S;
break;
case ('t'):
return 'T';
break;
case ('u'):
return 'U';
break;
case ('v'):
return 'V';
break;
case ('w'):
return 'W';
break;
case ('x'):
return 'X';
break;
case ('y'):
return 'Y';
break;
case ('z'):
return 'Z';
break;
default:
return s;
break;
}
}
}
Это похоже на сумасшедшую идею. Я не совсем уверен, что с этим делать. –
Почему вы переписываете встроенные функции? –
case ('s'): return S; Разве вы не подразумеваете возвращение 'S'; ? – Almo