Я пишу коды C#, преобразованные из некоторых устаревших кодов VB. В VB коды от одной из функций:Множественный возврат в случае выбора VB
Private Function function1() As Double
Dim variable2 As Double = 0
If variable1 = 6 Then
Select Case variable3
Case Is <= 1500 : Return Constant1
Case Is <= 2000 : Return Constant2
Case Is <= 2500 : Return Constant3
Case Is <= 3000 : Return Constant4
Case Else : Return Constant5
End Select
variable2 = variable2 +3
End If
Return variable2
End Function
переменной 1, переменная 3 и все константы являются полями класса уровня. Кажется, что возвращаемое значение из переменной 2 после обработки внутри оператора If.
Может ли кто-нибудь сообщить, почему в заявлении о выборе есть несколько предложений возврата? Я предполагаю, что он присваивает постоянным значения переменной3 для будущих процессов, все согласны со мной?
Он будет возвращать только одно значение, не все из них. Если значение 'variable3' равно <= 1500, оно вернет Constant1, если оно больше 1500 и меньше или равно 2000, оно вернет Constant2 и т. Д. – Tim
Ваш код не будет компилироваться. 'Case Else: Constant5' недействителен. Можете ли вы показать нам фактический код, пожалуйста? Даже если он * сделал * компиляцию (и был 'return Constant5') - это означает, что части, относящиеся к' variable2', никогда не будут выполнены. – Rob
Привет, ваши права, должны быть возвращены Constant5, я внесла поправки. – DennisL