我目前正在将一些 VB 源代码转换为 C#。虽然我知道有转换器可以自动执行此操作,并且我实际上可以使用这个特定的 dll 而无需重写它,但我只是部分地这样做,以便更好地理解 VB。与其期望写它,但它至少帮助我能够阅读它。
不过,在这样做时,我遇到了一些非常令人困惑的事情。以下代码片段是示例,但我在整个程序中都看到了它。
VB源代码:
Friend Function AllocateObjectNumber() As Long
AllocateObjectNumber = _nextFreeObjectNumber
_nextFreeObjectNumber += 1
_objectAllocatedCount += 1
End Function
我翻译的 C# 代码:
internal long AllocateObjectNumber()
{
cvNextFreeObjectNumber += 1;
cvObjectAllocatedCount += 1;
return cvNextFreeObjectNumber;
}
我不明白的是 VB 使用的流控制。我知道AllocateObjectNumber += 1
使用它代替return cvNextFreeObjectNumber
,但是如果此行出现在两个变量的递增之前,那么该代码如何不被视为不可访问?根据我对C#的理解,这个方法的第一行会立即回到调用方法,整个方法基本上就是一个伪Property。
有什么有用的解释吗?