在C#中Convert.ToInt32()和Convert類的任何方法都可以處理空值,但所有這些方法都不處理「」作爲輸入。引發錯誤「輸入的字符串格式不正確」 有沒有辦法處理/轉換「」爲其特定的值?像如何在C#中處理/轉換「」#
Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0
與出使用if條件
感謝。
在C#中Convert.ToInt32()和Convert類的任何方法都可以處理空值,但所有這些方法都不處理「」作爲輸入。引發錯誤「輸入的字符串格式不正確」 有沒有辦法處理/轉換「」爲其特定的值?像如何在C#中處理/轉換「」#
Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0
與出使用if條件
感謝。
的POD類在C#中有一種方法只是爲了這個原因:
你甚至可以編寫擴展方法,使這個您更容易:
public static class Extensions {
public static decimal MyDecimalParse(this string val) {
decimal ret = decimal.Zero;
decimal.TryParse(val, out ret);
return ret;
}
} // eo class extension
你可以進一步改進它以傳遞默認值(其本身可以默認爲0)。這將使OP可以靈活地更改每次轉換的默認值。 – James 2013-03-03 19:51:51
int i;
bool b = int.TryParse("", out i);
Console.WriteLine(b);
沒有任何在爲你做這件事的框架中固有的東西。整個社區理解爲「0」或「0.0」是沒有意義的。我會建議編寫你自己的方法,做你想要的東西。
某事的效果:
public class MyConvert
{
public static int ToInt32(string input)
{
return String.IsNullOrEmpty(input) ? 0 : Convert.ToInt32(input);
}
}
我知道你不想做的,如果檢查,但你必須檢查這種或那種方式(通過檢查.IsNullOrEmpty或.TryParse) ,所以將它抽象爲你自己的轉換方法至少意味着你不必每次都這樣做。
不是我所知道的。這些方法意味着需要一個可以解析的數字 - 一個空字符串不是。 – Gigi 2013-03-03 19:15:28
http://msdn.microsoft.com/en-us/library/f02979c7.aspx – Ofiris 2013-03-03 19:16:03