Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使用()和不使用()声明datatable类之间有什么区别_Vb.net - Fatal编程技术网

Vb.net 使用()和不使用()声明datatable类之间有什么区别

Vb.net 使用()和不使用()声明datatable类之间有什么区别,vb.net,Vb.net,我有一个关于声明datatable变量的问题 如果我将datatable变量声明为: Dim xDt as new datatable 或 首先,您没有在那里声明类。您正在声明类型为DataTable的变量。无论如何,这项声明是无关紧要的。重要的是,您正在通过调用带有New关键字的构造函数来创建DataTable类的实例。构造函数只是一种特殊的方法,在VB中,调用没有参数的方法时可以省略括号。这: Dim表作为新数据表 在功能上与此等效: Dim table As DataTable=新Da

我有一个关于声明datatable变量的问题

如果我将datatable变量声明为:

Dim xDt as new datatable


首先,您没有在那里声明类。您正在声明类型为
DataTable
的变量。无论如何,这项声明是无关紧要的。重要的是,您正在通过调用带有
New
关键字的构造函数来创建
DataTable
类的实例。构造函数只是一种特殊的方法,在VB中,调用没有参数的方法时可以省略括号。这:

Dim表作为新数据表
在功能上与此等效:

Dim table As DataTable=新DataTable
这在功能上等同于:

Dim表作为数据表
table=新数据表
如您所见,最后一行是重要的,变量声明是不相关的。最后一行相当于:

table=newdatatable()
是否包含括号取决于您,但我建议您出于逻辑原因选择一个选项,并始终如一地坚持下去

就我个人而言,我总是在标准方法调用中包含括号,但我总是从构造函数中省略它们。我使用前者是为了使方法易于与属性区分,因此我会这样做:

Dim str=obj.ToString()
与此相反:

Dim str=obj.ToString
但是,对于构造函数,将它们误认为属性的风险很小,但也存在将它们误认为数组的风险,例如

Dim表为DataTable()
声明类型为
DataTable
array的变量,而不创建对象,同时执行以下操作:

Dim表作为新数据表()
声明类型为
DataTable
的变量,并为其分配新对象。在我看来,省略构造函数中的括号可以减少混淆的可能性,而在其他方法中包含括号也是如此

Dim xDt as new datatable()