現在、一部の 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
ますが、この行が 2 つの変数のインクリメントの前にある場合、そのコードが到達不能と見なされないのはなぜでしょうか? 私の C# の理解に基づくと、このメソッドの最初の行はすぐに呼び出し元のメソッドに戻り、このメソッド全体が基本的に疑似プロパティとして機能します。
役立つ説明はありますか?