オブジェクト型フィールド(DataSetから取得)のデータを宛先(型付き)フィールドに変換するコードを記述しようとしています。私は(少なくとも試して) 動的変換を使用しています。それは、文字列、int、DateTimeで正常に動作するようです。C#:ジェネリックスを使用してオブジェクトを符号なし数値型にキャスト
しかし、符号なしの型(ulong、uint)では機能しません。下に、私がしたいことを示す簡単なコードがあります。 ul var型をulongからintに変更すると、正常に動作します。
誰か手掛かりがありますか?
public class console
{
public static void CastIt<T>(object value, out T target)
{
target = (T) value;
}
public static void Main()
{
ulong ul;
string str;
int i;
DateTime dt;
object ul_o = (object) 2;
object str_o = (object) "This is a string";
object i_o = (object)1;
object dt_o = (object) DateTime.Now;
Console.WriteLine("Cast");
CastIt(ul_o, out ul);
CastIt(str_o, out str);
CastIt(i_o, out i);
CastIt(dt_o, out dt);
Console.WriteLine(ul);
Console.WriteLine(str);
Console.WriteLine(i);
Console.WriteLine(dt.ToString());
}
}
+1のConvert.ChangeType - 何とか私はそれに気付かなかった – galaktor