我有一個值,該值可以是一個盒裝(任何)數值類型,或可爲空的數字型的。我需要檢查該值是否爲零。如何確定值是否爲零?
基本上我有這樣的:
public bool IsZero(object value)
{
if (value == null)
return false;
//lifted from the mvc sources, so I guess it's exhaustive
HashSet<Type> numericTypes = new HashSet<Type>(new Type[] {
typeof(byte), typeof(sbyte),
typeof(short), typeof(ushort),
typeof(int), typeof(uint),
typeof(long), typeof(ulong),
typeof(float), typeof(double),
typeof(decimal)
});
Type type = Nullable.GetUnderlyingType(value.GetType()) ?? value.GetType();
if (!numericTypes.Contains(type))
return false;
// how do I get the value here ?
}
我沒有看到一個簡單的方法有一個int零比較一個int值,並用0字節一個字節值。
一個解決方法我看到的是一個正確鍵入零值與每一個類型相關聯並覈對,但我想重用的解決方案,如果我最終我需要一個「IsOne」的方法。
很好的建議爲好, - 但是,這並一切工作,但小數在「0.00」的形式,因爲他們保留他們與小數:( – 2011-12-21 10:01:20
@ShadowWizard必須有一個空檢查 - 我省略了這一點,因爲它已經出現在OP問題中。順便說一句好的答案! – 2011-12-21 10:05:52