VB.NET中如何实现类似C#前置自增的数组赋值操作?
在VB.NET中实现类似C#自增索引的简洁写法
我在C#中创建消息时曾用这样的写法:
ByteMessage[i] = "A"; ByteMessage[++i] = "B"; ByteMessage[++i] = "C"; // ......................现在想在VB.NET里实现同样的操作,但VB.NET不支持
++或--运算符。我试过这样写:ByteMessage(i += 1) = "A" ByteMessage(i += 1) = "B" ByteMessage(i += 1) = "C" ' ......................但没法正常运行,而且Math库也没有相关方法。想问问VB.NET里有没有像C#那样简洁的解决方案?
这问题我之前也碰到过!VB.NET确实没有C#那种简洁的自增运算符,但有几个办法能达到一样的效果,而且也挺简洁的:
用冒号合并自增与赋值:VB.NET允许用冒号
:把同一行的多个语句连起来,我们可以先手动自增变量,再用新索引赋值,写法很紧凑:i = i + 1 : ByteMessage(i) = "A" i = i + 1 : ByteMessage(i) = "B" i = i + 1 : ByteMessage(i) = "C"这个逻辑和C#的
ByteMessage[++i]完全一致——先让i自增,再用更新后的索引给数组赋值。封装自增函数复用:如果这种操作在代码里出现很多次,写个小函数会更方便,完美模拟C#的前置自增效果:
Function Inc(ByRef num As Integer) As Integer num += 1 Return num End Function之后用的时候就可以像这样写,和C#的写法几乎一样直观:
ByteMessage(Inc(i)) = "A" ByteMessage(Inc(i)) = "B" ByteMessage(Inc(i)) = "C"函数会先把传入的i加1,再返回新的数值,直接用作数组索引就行。
如果是批量给数组赋值的场景,还可以考虑用数组初始化或者循环来简化,但如果是零散的赋值,上面两种方法就足够简洁好用了。
内容的提问来源于stack exchange,提问作者Timmy
相关产品推荐
相关产品推荐

