VB.net中的myObject.MyField和myObject.MyField()有什么区别?

时间:2012-09-20 15:40:11

标签: .net vb.net

我偶然发现了这个问题:

myObject的班级有一个公共字段MyField,其类型为Decimal?

我不小心访问该字段,就像使用此代码的属性一样:

myObject.MyField()

而不是

myObject.MyField

我从编译器得到以下错误:Structure 'Decimal?' cannot be indexed because it has no default property

文档on this error on MSND非常简短,我只是不明白这意味着什么。

问:myObject.MyField()如果有的话是什么意思?为什么我不能在我的领域使用它呢?

注意:我的问题现在已经解决,但我想了解......

2 个答案:

答案 0 :(得分:3)

您可以在VB.NET中使用()访问数组的元素。错误消息告诉您Structure 'Decimal?' cannot be indexed,因为它不能。

答案 1 :(得分:1)

在该上下文中,它是索引运算符,就像C#中的[]一样。

更确切地说,在VB.NET中它被称为“默认属性”,在C#中它被称为“索引器”。

有关更多详情,请参阅here