19

あるnull許容型から別の「互換性のある」null許容型に変換するための(より安全で簡潔なという意味で)最良の方法は何でしょうか。

具体的には10進数から換算?2倍にする?次を使用して実行できます。

public double? ConvertToNullableDouble(decimal? source)
{
    return source.HasValue ? Convert.ToDouble(source) : (double?) null;
}

これを行うより良い方法はありますか?多分標準変換を利用していますか?

4

2 に答える 2

1

一般に、互換性がある限り、任意のデータ型から別のデータ型に変換する場合は、次を使用します。

    Convert.ChangeType(your variable, typeof(datatype you want convert to));

例えば:

    string str= "123";
    int value1 = (int)Convert.ChangeType(str, typeof(int));
    float? value2 = (float?)Convert.ChangeType(str, typeof(float));
    ...................................

もう少し安全にしたい場合は、try catch を追加できます。

string str= "123";
try
{
    int value1 = (int)Convert.ChangeType(str, typeof(int));
    int? value2 = (int?)Convert.ChangeType(str, typeof(int));
    float value3 = (float)Convert.ChangeType(str, typeof(float));
    float? value4 = (float?)Convert.ChangeType(str, typeof(float));
}
catch(Exception ex)
{
  // do nothing, or assign a default value
}

これはVS 2010でテストされています

于 2013-05-02T21:28:13.393 に答える