각 기본 숫자 유형에 대해 유형 검사를 수행하기 만하면됩니다.
작업을 수행해야하는 확장 메서드는 다음과 같습니다.
public static bool IsNumber(this object value)
{
return value is sbyte
|| value is byte
|| value is short
|| value is ushort
|| value is int
|| value is uint
|| value is long
|| value is ulong
|| value is float
|| value is double
|| value is decimal;
}
이것은 모든 숫자 유형을 포함해야합니다.
최신 정보
실제로 deserialization 중에 문자열에서 숫자를 구문 분석하려는 것 같습니다. 이 경우를 사용하는 것이 가장 좋습니다 double.TryParse
.
string value = "123.3";
double num;
if (!double.TryParse(value, out num))
throw new InvalidOperationException("Value is not a number.");
물론 이것은 매우 큰 정수 / 긴 소수를 처리하지 않지만, 만약 그렇다면 당신은 long.TryParse
/ decimal.TryParse
/ 다른 것에 추가 호출을 추가해야합니다 .