0

C# Convert.ToInt32() および Convert クラスの任意のメソッドで null 値を処理できますが、これらすべてのメソッドは "" を入力として処理しません。「入力文字列が正しい形式ではありません」というエラーをスローします「」を処理/変換して特定の値にする方法はありますか? お気に入り

Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0

if条件を使わずに

ありがとう。

4

3 に答える 3

3

C# の POD クラスには、次の理由からメソッドがあります。

Int32.TryParse

これを簡単にするために、拡張メソッドを作成することもできます。

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
于 2013-03-03T19:15:33.470 に答える
0

int.TryParse を試す

int i;
bool b = int.TryParse("", out i);
Console.WriteLine(b);
于 2013-03-03T19:18:59.320 に答える
0

これを行うフレームワークに固有のものはありません。コミュニティ全体が "" をデフォルトで 0 または 0.0 に設定することを理解するのはおそらく意味がありません。具体的に必要なことを行う独自のメソッドを作成することをお勧めします。

効果のあるもの:

public class MyConvert
{
    public static int ToInt32(string input)
    {
        return String.IsNullOrEmpty(input) ? 0 : Convert.ToInt32(input);
    }
}

if チェックを実行したくないことはわかっていますが、何らかの方法で (.IsNullOrEmpty または .TryParse をチェックして) チェックする必要があるため、独自の convert メソッドに抽象化することは、少なくとも持っていないことを意味します。毎回すること。

于 2013-03-03T19:22:18.087 に答える