我有一个关于声明一个数据表变量的问题。
如果我将一个数据表变量声明为:
Dim xDt as new datatable
或
Dim xDt as new datatable()
? ?
首先,这里没有声明一个类。你正在声明一个类型为DataTable
的变量。无论如何,这份声明是无关紧要的。重要的是,您通过调用带有New
关键字的构造函数来创建DataTable
类的实例。构造函数只是一个特殊的方法,在VB中,您可以在调用不带参数的方法时省略括号。:
Dim table As New DataTable
在功能上等同于:
Dim table As DataTable = New DataTable
在功能上等同于:
Dim table As DataTable
table = New DataTable
从这里可以看到,最后一行是重要的,变量声明是无关紧要的。最后一行相当于这样:
table = New DataTable()
是否包含括号取决于您,但我建议您出于逻辑原因选择一个选项并始终如一地坚持下去。
就我个人而言,我总是在标准方法调用中包含括号,但我总是在构造函数中省略它们。我这样做是为了使方法和属性容易区分,所以我会这样做:
Dim str = obj.ToString()
而不是:
Dim str = obj.ToString
对于构造函数,将它们误认为属性的风险很小,但有将它们误认为数组的风险,例如
Dim tables As DataTable()
声明一个DataTable
数组类型的变量,而不创建对象,同时:
Dim table As New DataTable()
声明一个DataTable
类型的变量,并给它赋值一个新对象。在我看来,省略构造函数中的圆括号可以减少混淆的可能性,而在其他方法中包含圆括号也可以达到同样的效果。