Columns.Add() vs new DataColumn()

本文关键字:DataColumn new vs Columns Add | 更新日期: 2023-09-27 18:09:39

我对如何在表上插入新列感到困惑,Columns.Add()new DataColumn()之间的区别是什么?

DataTable student = new DataTable("Students");
student.Columns.Add("ID", typeof(int));

DataColumn id = new DataColumn("ID");
id.DataType = typeof(int);
student.Columns.Add(id);

Columns.Add() vs new DataColumn()

DataColumnCollection.Add只是创建列和添加它的快捷方式。正如MSDN所说:

创建并添加具有指定名称和的DataColumn对象

它是这样实现的:

public DataColumn Add(string columnName, Type type)
{
    DataColumn column = new DataColumn(columnName, type);
    this.Add(column);
    return column;
}

正如您所看到的,它在内部创建了DataColumn的新实例并将其添加到自身。

注意:您可以使用DataColumn构造函数,它接受列数据类型作为第二个参数。因此,第二个示例可能看起来像:

student.Columns.Add(new DataColumn("ID", typeof(int)));

但无论如何,我认为第一个"快捷"选项更易于阅读和紧凑。如果您已经有一些列,或者您有继承自DataColumn的自定义类型的列,您可能希望使用后一种方法。