Ich versuche, Code zu schreiben, um Daten aus einem Objekttyp-Feld (stammen aus einem DataSet) in seine Zielfelder (typisiert) zu konvertieren. Ich mache (zumindest versucht) es mit dynamische Konvertierung. Es scheint gut für Strings, Int, DateTime zu funktionieren.C#: Cast ein Objekt zu einem vorzeichenlosen Zahlentyp mit Generics
Aber es funktioniert nicht für unsigned Typen (Ulong, Uint). Unten gibt es einen einfachen Code, der zeigt, was ich tun möchte. Wenn Sie den ul var-Typ von ulong in int ändern, funktioniert es einwandfrei.
Hat jemand eine Ahnung?
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 für Convert.ChangeType - irgendwie habe ich das nie bemerkt – galaktor