vb.net 有没有++(增1)和--(减1)运算符?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net 有没有++(增1)和--(减1)运算符?相关的知识,希望对你有一定的参考价值。
i++在vb.net中不能通过编译,++i可以,但好像不是原来的意思了,vb.net中有没有新的自增运算符
++ 是 c#的用法vb.net vs c# 详细的Operators运算符区别
vb.net
=====================
Comparison
= < > <= >= <>
Arithmetic
+ - * /
Mod
\ (integer division)
^ (raise to a power)
Assignment
= += -= *= /= \= ^= <<= >>= &=
Bitwise
And Or Xor Not << >>
Logical
AndAlso OrElse And Or Xor Not
Note: AndAlso and OrElse perform short-circuit logical evaluations
String Concatenation
&
c#
=====================
Comparison
== < > <= >= !=
Arithmetic
+ - * /
% (mod)
/ (integer division if both operands are ints)
Math.Pow(x, y)
Assignment
= += -= *= /= %= &= |= ^= <<= >>= ++ --
Bitwise
& | ^ ~ << >>
Logical
&& || & | ^ !
Note: && and || perform short-circuit logical evaluations
String Concatenation
+ 参考技术A 没有的哦,都是都是一样的呢~~ 比如
for i=1 to i++
i=a--
等等~~~ 参考技术B 没有
vb.net不同于C
vb.net比VB做的改进就是增加了
i += 5
i *= 5
一类的运算赋值,而i++可以用i+=1代替
VB.net比VB确实方便多了,但是以前学C的可能没有这种感觉
VB.NET 中的合并运算符和条件运算符 [重复]
【中文标题】VB.NET 中的合并运算符和条件运算符 [重复]【英文标题】:Coalesce operator and Conditional operator in VB.NET [duplicate] 【发布时间】:2010-10-12 08:34:51 【问题描述】:可能重复:Is there a conditional ternary operator in VB.NET?
我们能否像在 C# 中一样在 VB.NET 中使用 Coalesce 运算符(??) 和条件三元运算符(:)?
【问题讨论】:
这不是重复的问题。这个问题涉及到空合并运算符。 用于转换?? VBnet 使用带有两个参数的 If(,),如 here 如果不是 .duplicate 则过于宽泛,因为它包含两个问题 自 VS 2015 以来,现在可以使用 ?。在 vb.Net 中。Dim x = Obj?.Child?.AnotherChild?.Something?.AString
x 是一个字符串,如果任何对象都没有,则为 Nothing,如果所有对象都不是,则设置。
【参考方案1】:
我认为你可以使用内联 if 语句来接近:
//C#
int x = a ? b : c;
'VB.Net
Dim x as Integer = If(a, b, c)
【讨论】:
*注意:以这种方式使用 if 语句仅适用于 VB.NET 2008 及更高版本。 要将 If() 函数用作合并运算符,必须仅使用两个参数调用它,并且它必须用于引用类型:Dim objC = If(objA,objB)
这会将 objC 设置为 objA,除非 objA 是什么都没有,在这种情况下,objC 将被设置为 objB,无论它是否为 Nothing。
对于 2006+ 支持使用内存中的 IIf?
@Brandito:IIF
函数就是这样一个函数,一个你可以自己编写的函数。它不进行合并,您必须自己编写该函数。 If
是一个内置运算符,如果您只提供 2 个参数,它会进行合并。
鉴于 IIf( ) 是一个函数而 If( ) 不是,主要的副作用是 If( ) 只评估真/假方面,其中 IIf( ) 将评估双方,甚至如果它只返回其中一个。【参考方案2】:
Sub Main()
Dim x, z As Object
Dim y As Nullable(Of Integer)
z = "1243"
Dim c As Object = Coalesce(x, y, z)
End Sub
Private Function Coalesce(ByVal ParamArray x As Object())
Return x.First(Function(y) Not IsNothing(y))
End Function
【讨论】:
利用 LINQ,这是最有效的Coalesce()
实现。
这个问题(以及下面的 ivan)是所有参数都将被评估。所以,如果我写Dim thingie = Coalesce(Session("thingie"), new Thingie)
,每次都会创建一个新的Thingie对象(尽管如果Session中存在Thingie,它将被丢弃)【参考方案3】:
仅供参考,字符串合并运算符
Private Function Coalesce(ByVal ParamArray Parameters As String()) As String
For Each Parameter As String In Parameters
If Not Parameter Is Nothing Then
Return Parameter
End If
Next
Return Nothing
End Function
【讨论】:
【参考方案4】:如果应该是 IIf
Dim x as Integer=IIf(a,b,c)
【讨论】:
不。 IIf 评估所有参数,因为它是常规调用。见dotnetslackers.com/VB_NET/…以上是关于vb.net 有没有++(增1)和--(减1)运算符?的主要内容,如果未能解决你的问题,请参考以下文章