用()和不用()声明数据表类有什么区别
我有一个关于声明数据表变量的问题。
如果我将数据表变量声明为:
Dim xDt as new datatable
或者
Dim xDt as new datatable()
??
回答
首先,你没有在那里声明一个类。您正在声明一个类型为 的变量DataTable。无论如何,声明是无关紧要的。重要的是您DataTable通过使用New关键字调用构造函数来创建类的实例。构造函数只是一种特殊的方法,在 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并为其分配一个新对象。在我看来,省略构造函数上的括号可以减少混淆的可能性,而将它包含在其他方法中也是如此。