パラメータの値をチェックする関数を作成したかったのですが、null の場合はパラメータの型に基づいて値を設定し、それ以外の場合は値をそのまま返す必要があります。
ここで私が試したこと。
public static T ConvertNull<T>(T obj)
{
if (String.IsNullOrEmpty(obj.ToString()))
{
HttpContext.Current.Response.Write("COMING IN");
if (typeof(T) == typeof(Int32))
{
return (T)Convert.ChangeType(0, typeof(T));
}
else if (typeof(T) == typeof(DateTime))
{
return (T)Convert.ChangeType(DateTime.Now, typeof(T));
}
else
{
return (T)Convert.ChangeType(String.Empty, typeof(T));
}
}
else
{
HttpContext.Current.Response.Write("ELSE");
return obj;
}
}
しかし問題は、常に ELSE セクションに入り、ジャンク値を返すことです。
上記の関数の何が問題なのか、誰か教えてください。