【问题标题】:How would you write this in VB.net? I don't get index++您将如何在 VB.net 中编写此代码?我没有得到索引++
【发布时间】:2012-01-11 10:23:14
【问题描述】:

我想真的微不足道,但我不明白 index++ 的作用。这将如何用 VB.net 编写?

int index = 0;
foreach(String prop in props.Keys)
{
     pSpec.pathSet[index++] = prop;
}
pSpecs.Add(pSpec);

【问题讨论】:

标签: c# .net vb.net


【解决方案1】:

这只是一个后增量。这意味着它将返回它的值,然后将它的值增加 1。

pSpec.pathSet[index++] = prop;

在 VB.net 中很可能只是:

pSpec.pathSet[index] = prop
index = index + 1 // this would work
index += 1 // this would work too

请注意,您不能以这种方式内联(因为您需要以前的值)。

【讨论】:

    【解决方案2】:
    Dim index As Integer = 0
    For Each prop As [String] In props.Keys
        index = index +1
        pSpec.pathSet(index) = prop
    Next
    pSpecs.Add(pSpec)
    

    【讨论】:

    • 您的意思是改写System.Math.Min(...) 吗?
    • 您的代码与问题不同。增量应该在分配之后。
    • 您已经改变了含义 - 实际上您创建的是前增量而不是后增量。
    • 答案是正确的,但是增量确实需要在赋值之后。谢谢!
    【解决方案3】:

    自增运算符(++)将其操作数加1。自增运算符可以出现在其操作数之前或之后:

    是一样的index = index +1;

    【讨论】:

    • 这将始终位于索引 1
    • index = index++ 不会按照你的想法去做(试试看)。它应该只是 index++index = index + 1index += 1
    • 你是对的。我以前从来没有注意到,我想知道为什么。编辑:我刚刚发现:)。谢谢
    【解决方案4】:

    你必须以这种方式增加它

    index =index + 1;
    

    index +=1

    如果有兴趣为什么no increment operator

    知道了using this

    Dim index As Integer = 0
    For Each prop As [String] In props.Keys
        pSpec.pathSet(System.Math.Max(System.Threading.Interlocked.Increment(index),index - 1)) = prop
    Next
    pSpecs.Add(pSpec)
    

    【讨论】:

      【解决方案5】:

      index++ 将 index 加 1。

      我不太了解 VB,但你可以:

      index = index + 1
      

      【讨论】:

        【解决方案6】:

        index++ 返回index 的当前值,然后递增index 的值。

        在第一次迭代中,它会返回 0 作为值,之后该值将增加到 1。 在第二次迭代中,它会返回 1 作为值,之后值会增加到 2。

        VB中不存在'++'运算符,你必须自己增加它。

        【讨论】:

          【解决方案7】:

          这就是你要找的东西

          Dim index As Integer = 0
          For Each prop As [String] In props.Keys
              pSpec.pathSet(System.Math.Max(System.Threading.Interlocked.Increment(index),index - 1)) = prop
          Next
          pSpecs.Add(pSpec)
          

          【讨论】:

            【解决方案8】:

            index++ 将 index 的值加 1。该语法在 VB.NET 中不可用 (http://www.knowdotnet.com/articles/paulvick.html)

            所以 index++ 等价于 index = index+1 你的VB代码应该是这样的:

            {
             index = index+1
             pSpec.pathSet[index] = prop
            }
            

            【讨论】:

              【解决方案9】:

              如前所述,这只是增加值。

              ++ 不是 VB.NET 中的有效运算符,但最接近的可能是:

              index += 1
              

              对于来自 VB6 的任何人来说,这都是一个不错的变化,因为在此之前我们必须始终使用简写 index = index + 1

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-12-17
                • 1970-01-01
                • 2021-09-04
                • 1970-01-01
                • 1970-01-01
                • 2014-07-13
                相关资源
                最近更新 更多