我嘗試寫一些代碼將數據從一個對象類型字段轉換蒙上了對象的無符號數類型(來自一個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());
}
}
我明白了。但是,爲什麼我不能在它是一個uint時轉換它?你認爲有必要在分配結束時加上'u'嗎?如: object o = 10u; 012 Jonathan提出的 ? 乾杯 – Andres 2009-04-21 18:47:23
你必須這樣做,因爲這會給編譯器提示一個推斷ulong而不是int的提示。 – 2009-04-21 18:49:34