C# Convert.ToInt32() および Convert クラスの任意のメソッドで null 値を処理できますが、これらすべてのメソッドは "" を入力として処理しません。「入力文字列が正しい形式ではありません」というエラーをスローします「」を処理/変換して特定の値にする方法はありますか? お気に入り
Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0
if条件を使わずに
ありがとう。
C# Convert.ToInt32() および Convert クラスの任意のメソッドで null 値を処理できますが、これらすべてのメソッドは "" を入力として処理しません。「入力文字列が正しい形式ではありません」というエラーをスローします「」を処理/変換して特定の値にする方法はありますか? お気に入り
Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0
if条件を使わずに
ありがとう。
C# の POD クラスには、次の理由からメソッドがあります。
これを簡単にするために、拡張メソッドを作成することもできます。
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
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);
}
}
if チェックを実行したくないことはわかっていますが、何らかの方法で (.IsNullOrEmpty または .TryParse をチェックして) チェックする必要があるため、独自の convert メソッドに抽象化することは、少なくとも持っていないことを意味します。毎回すること。