【问题标题】:vb creating properties using arraysvb使用数组创建属性
【发布时间】:2014-04-02 06:13:11
【问题描述】:

我可以为我的班级创建一个作为数组的字段。我无法将我的属性创建为数组。我真的需要一个一个地定义每个单独的属性吗?或者有没有更好的方法来做到这一点。我尝试的一切都会给我一个错误。 _Pencil(5) 给我一个错误。

公共课笔

Private pens(5) As Integer

ReadOnly Property _Pencil(5) As Integer
    Get
        Return pens(0)
        Return pens(1)
        Return pens(2)
        Return pens(3)
        Return pens(4)
        Return pens(5)
    End Get
End Property

结束类

非常感谢所有帮助。

更新 Edwin 代码效果很好,但我无法检索信息

类标记

  Private _pens(5) As Integer

   Public ReadOnly Property Pencil As Integer()
      Get
          Return _pens
      End Get
   End Property

   Sub New()
      _pens(0) = 1
      _pens(1) = 2
      _pens(2) = 3
      _pens(3) = 4
      _pens(4) = 5
      _pens(5) = 6
    End Sub


 End Class

这似乎可行,但是当我创建对象时无法看到 _pens(0) 、 _pens(1) 等的值时

dim test as New Marker()

test.Pencils

谢谢

【问题讨论】:

  • 明确的 5 参数是错误的。它可能应该是一个变量(例如nPen as Integer),返回值可能是pens(nPen)。如果你确实想返回一个数组,那么Property Pencil as Integer() 你仍然不需要参数
  • 我不确定你的意思。对不起,无论如何你可以把代码写出来,这样我就可以看到了。如果没有,不用担心
  • 看起来你正在使用不同的类。你应该做“Dim test as New Pencil”
  • 谢谢,我把课程改成了 Marker,这样它会脱颖而出

标签: vb.net


【解决方案1】:

数组是它自己的东西。您只需返回它而不指定每个项目。下划线通常表示私有字段。

试试这个:

Private _pens(5) as Integer

Public ReadOnly Property Pencil As Integer()
    Get
       Return _pens

    End Get
End Property

【讨论】:

  • 啊,这就是下划线的用途。谢谢
  • 这仍然给我一个错误。 _pens 下有一个蓝色的 squig,表示“整数的一维数组”类型的值无法转换为整数
  • 对不起,括号在带有属性的类型之后。刚刚更新。
  • 现在我在创建对象时无法访问该值。我创建了一个构造函数,它拥有并初始化我所有的 _pens(0) =1 _pens(1) = 2 .... 等等。现在,当我创建一个对象时说 MyPen MyPen.Pencil
  • Edwin,我在您的代码中添加了我最初的问题。关于为什么我在创建新对象时看不到元素的任何想法?
【解决方案2】:

试试

ReadOnly Property Pencil() As Integer
    Get
 Return pens(0)
        Return pens(1)
        Return pens(2)
        Return pens(3)
        Return pens(4)
        Return pens(5)
    End Get
End Property

只需使用 pencil() 代替 _pencil(5)

【讨论】:

  • 谢谢,我试过了。当我创建一个铅笔类型的新对象时,我无法读取每个值,u Dim myPen As Pencil myPen.pens()
  • 执行在第一次返回时停止。其他返回将从不运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
相关资源
最近更新 更多