我想创建一个数据表类,并且可以使用指定的列来调用方法,例如复制或聚合,我可以遍历一些记录并添加到表中。创建可重用的数据对象;仅添加迭代
我想我可以创建私人和公共变量集和表的值赋给我的默认设置,如:
private DataTable newTable;
public DataTable NewTable
{
get { return newTable; }
set
{
DataTable newTable= new DT();
newTable.Columns.Add("Name", typeof(string));
newTable.Columns.Add("Id", typeof(int));
}
}
我的想法是,一个人可以得到该表,但他们couldn” t设置它是因为它被设置为默认值。但是,我从界面看到一条消息,即使我稍后在方法中使用它,它将始终为空。
我真是创造,我可以在一个方法使用一个静态类,涉及以上数据表的另一种刺被设置:
static DataTable myDt()
{
DataTable myDt = new DT();
myDt.Columns.Add("Name", typeof(string));
myDt.Columns.Add("Id", typeof(int));
}
这不工作,我需要在一个迭代的方式当有人迭代超过100K条记录时,我不希望每次创建数据表;我想用定义创建一次数据表,创建一次数据行,然后在每次迭代时,根据定义中的列名将数据添加到新行中。我的想法是,该类将有数据表定义,这将永远不会改变,并且可以在每次迭代中更改数据行并将其添加到表中。
根据我正在做的事情,我哪里会出错,或者这甚至有可能吗?
最初的问题是setter没有设置私有变量,它只是产生一个新的变量,然后抛出它。所以类级别的newTable始终是null。但是这里一个更重要的设计问题是setter并没有真正设置它给出的内容,这会导致误导,并且会导致各种难以随时调试的逻辑错误。 – David
'DataTable newTable = new DT();'与'private DataTable newTable;'不是相同的DataTable。你在'set'中隐藏了具有该变量的类级DataTable。 –