如何在C#中一次初始化多个对象

时间:2018-07-06 11:59:21

标签: c# asp.net

我需要像这样初始化多个对象。

DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
DataTable dt4 = new DataTable();

有没有办法将它们初始化为

DataTable dt1, dt2, dt3, dt4 = new DataTable();

如果我在上面使用过,则没有编译错误,但是有运行时错误提示An Object reference not set to an instance.

我如何实现这一目标。

1 个答案:

答案 0 :(得分:2)

不,没有这种方法,您必须一个一个地初始化它们。

出现错误是因为dt1dt3被初始化为null,只有dt4有一个值。因此,用d1做任何事情都会抛出NullReferenceException

但是您可以单行执行:

DataTable t1 = new DataTable(), t2 = new DataTable(), t3 = new DataTable(), t4 = new DataTable();

最好是一个列表/数组:

var tables = new[] { new DataTable(), new DataTdable(), new DataTable(), new DataTable() };

甚至

var tables = Enumerable.Range(0, 4).Select(x => new DataTable());