【发布时间】:2023-03-25 00:36:01
【问题描述】:
我做作业的返回值是多少?
例如,我可以这样做吗? (即赋值返回被赋值的值)
Dim a As Integer = 1
Dim b As Integer = 2
a = b = 3
今天写这段代码的时候就出现了问题:
Dim updates = GetUpdates()
While updates.Count > 0
Foo.ApplyUpdates(updates)
updates = GetUpdates()
End While
我有点希望我可以这样写...
While (updates = GetUpdates).Count > 0
Foo.ApplyUpdates(updates)
End While
我知道它不是那么干净...(而且我完全没有声明过updates),但它让我对.NET 中的分配如何工作感到好奇...它是一个有返回值的函数吗?如果是这样......它会返回什么?
编辑
我尝试了第一段代码。看起来编译器将其解释为将 b 和 3 比较的结果分配给 a... 这当然是编译器错误。
对于第二个代码块,我知道运算符 = 没有定义为任何类型 updates 是...即它认为这是一个比较,而不是一个赋值。
所以补充一下我的问题,为什么它会这样工作?是不是因为 vb.net 重载了符号= 有两种含义(赋值和比较)?
【问题讨论】:
标签: vb.net return-value assignment-operator