Eğer bir nesne C Bir sayı olup olmadığını kontrol etme#
.ToString()
bir dize basamak içeren neden olur, böylece eğer bir nesne bir sayı olup olmadığını kontrol etmek istiyorum ve,*,*
*6 7*
Mümkün olduğunca basit türü tarafından kontrol edilir .net (gibi: if (p is Number)
)?
Ya ben dize dönüştürmek, çift ayrıştırma deneyin Gerekir?
Güncelleme:Benim nesne netleştirmek için int, unit kayan nokta, çift kişilik, ve bir dize değil. Bu gibi xml nesne seri hale getirmek için herhangi bir işlevi yapmak için çalışıyorum:
<string>content</string>
ya
<numeric>123.3</numeric>
ya da özel bir durum ortaya.
CEVAP
Sadece temel sayısal türleri için bir tür denetimi yapmak gerekir.
Burada iş yapması gerektiğini uzatma yöntemi:
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;
}
Bu tüm sayısal türler kapsamalıdır.
Güncelleme
Deserialisation sırasında bir dizeden numarası ayrıştırmak için aslında gibi görünüyor. Bu durumda, muhtemelen en iyi double.TryParse
kullanmak olacaktır.
string value = "123.3";
double num;
if (!double.TryParse(value, out num))
throw new InvalidOperationException("Value is not a number.");
Tabii ki, bu uzun ondalık sayılar çok büyük tamsayılar işlemek değil, ama eğer bu durumda sen ne olursa olsun başka 14* / decimal.TryParse
/ *ek çağrıları eklemek gerek.
eğer nesne c boş olup olmadığını kontr...
Python: en eğer bir nesne bir sayı olu...
Eğer nesne dizisi olup olmadığını kont...
Eğer bir dize geçerli bir sayı olup ol...
Eğer nesne bir WordPress kullanmak bir...