我創建了一個名爲CustomData
的類,它使用另一個名爲CustomOptions
作爲其字段之一。我想在DataTable
中使用CustomData
作爲值。這裏有一個簡短的概述(簡化,字段是private
和訪問器public
,大部分是隻讀的,set
是由定製方法完成的);數據表和自定義類型
enum CustomDataOptionType
{
// Some values, not important
}
class CustomOptions
{
public CustomDataOptionType type { get; }
public Dictionary<string, string> values { get; }
// Some Methods to set the values
}
class CustomData
{
public CustomOptions options { get; }
// Some Methods to set the options
}
所以,在使用以上這樣的「實際」類,我創建一個DataTable
,使用是typeof(CustomData)
列。
但是,當我嘗試訪問列時,例如通過
DataRow Row = data.Rows.Find("bla");
Row["colmn1"].options; // Not possible
爲什麼我不能訪問options
字段?
該代碼假設你死定了類型在該列是正確的。 – 2009-12-01 10:51:10
如果將colum的DataType設置爲「typeof(CustomData)」,那麼只能存在表示「NULL」值的「CustomData」和/或「DBNull」。 – TcKs 2009-12-01 10:51:49
@ ApoY2k:如果你可以確保和/或確實像TcKs提到的那樣,那麼你很安全:) – 2009-12-01 11:01:47