DataTable创建对象时,是创建一个新的对象还是对原来的引用?
比如在myDataSet.Tables["Products"]中添加主键可以通过以下代码
DataTable productsDataTable = myDataSet.Tables["Products"];
DataColumn[] productsPrimaryKey =
new DataColumn[]
{
productsDataTable.Columns["ProductID"]
};
productsDataTable.PrimaryKey = productsPrimaryKey;我的理解是:这样添加的主键是添加到了productsDataTable中,而不是添加到了myDataSet.Tables["Products"]中。是不是productsDataTable只是myDataSet.Tables["Products"]的引用呢?
比如在myDataSet.Tables["Products"]中添加主键可以通过以下代码
DataTable productsDataTable = myDataSet.Tables["Products"];
DataColumn[] productsPrimaryKey =
new DataColumn[]
{
productsDataTable.Columns["ProductID"]
};
productsDataTable.PrimaryKey = productsPrimaryKey;我的理解是:这样添加的主键是添加到了productsDataTable中,而不是添加到了myDataSet.Tables["Products"]中。是不是productsDataTable只是myDataSet.Tables["Products"]的引用呢?
添加到productsDataTable中,就相当于添加到了myDataSet.Tables["Products"]中,它们指向的是同一个对象。productsDataTable和myDataSet.Tables["Products"]都是栈上的一个地址空间,它们的值都是对堆上分配的一个DataTable对象的引用。