【问题标题】:How to check if a value of an array is empty如何检查数组的值是否为空
【发布时间】:2021-05-13 12:28:24
【问题描述】:

我正在编写一个国际象棋程序,并且必须查看某个值是否为空。我试过了

aPieceCommandButtons 的数组。 cmdSquare 是一个形状控制数组。

Private aPiece(63) As CommandButton

...

For p = 0 To 63
    If IsEmpty(aPiece(p)) Then
        aPiece(p).Left = cmdSquare(p).Left
        aPiece(p).Top = cmdSquare(p).Top
    
    End If
Next p 

所有变量都已声明,似乎是 IsEmpty 函数不起作用。

【问题讨论】:

  • IsEmpty 只返回对变体有意义的信息。 aPiece 如何声明?它包含什么?
  • 它包含一个数组中的命令按钮。

标签: vb6


【解决方案1】:

IsEmpty 方法只返回有意义的变体信息。由于数组包含对象,您需要像这样检查:

If aPiece(p) Is Nothing Then

但是,这似乎只是答案的一部分。上面的逻辑是说“如果我的数组中没有一块,那么更新它的位置”。这对我来说没有意义,并且会产生错误。您还需要添加Not,如下所示:

For p = 0 To 1
   If Not aPiece(p) Is Nothing Then
      aPiece(p).Left = cmdSquare(p).Left
      aPiece(p).Top = cmdSquare(p).Top
   End If
Next p

【讨论】:

  • 我怀疑 OP 想知道他棋盘上的一个方格是否是空的,即没有棋子,并且误解了 IsEmpty 函数的用途。
  • 是的,尚不清楚 OP 在上下文中的意图。但是第一个代码 sn-p 回答了所提出的问题。
【解决方案2】:

这取决于aPiece 的数据类型。如果它是一个变体并且您没有为其分配值,IsEmpty 将返回 true。但是,如果它是 StringDateInteger 等,它们会自动初始化(String 将是一个空字符串,Integer 将是 0)所以 IsEmpty 将返回 false。

一个很好的参考是这个页面:IsEmpty Function - Visual Basic 6.0

【讨论】:

  • aPiece 是一个 CommadButtons 数组,被声明为。 Private aPiece(63) As CommandButton
猜你喜欢
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
相关资源
最近更新 更多