declare datatable class with()和without()的区别是什么?



我有一个关于声明一个数据表变量的问题。

如果我将一个数据表变量声明为:

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类型的变量,并给它赋值一个新对象。在我看来,省略构造函数中的圆括号可以减少混淆的可能性,而在其他方法中包含圆括号也可以达到同样的效果。

相关内容

最新更新