마지막으로 블록에서 반환 값에 액세스하는 것이 합법적이고 가능합니까?
문제
반환 코드와 함수의 변수에 따라 함수를 남기기 전에 userError 문자열을 설정하려고합니다.
나는 현재 가지고있다 :
Dim RetVal as RetType
try
...
if ... then
RetVal = RetType.FailedParse
end try
endif
...
finally
select case RetVal
case ...
UserStr = ...
end select
end try
return RetVal
return rettype.failedparse를 사용한 다음 마침내 블록에 액세스 할 수 있습니까?
해결책
C# 에서이 작업을 수행하는 유일한 방법은 값을 유지하기위한 방법의 시작 부분에서 변수를 선언하는 것입니다.
SomeType result = default(SomeType); // for "definite assignment"
try {
// ...
return result;
}
finally {
// inspect "result"
}
VB에서, 당신 ~할 것 같다 결과에 직접 액세스 할 수 있어야합니다. IIRC이므로 어쨌든 위의 메소드 이름으로 위의 것과 같이 작동합니다. 경고 : 난 진짜 VB 사람이 아닙니다 ...
다른 팁
Try Block에서 변수를 선언하고 설정된 경우 마지막으로 블록을 확인하십시오.
VB에서 (합법적으로) 할 수 있는지 궁금합니다.
Public Function MyFunc() as integer
Try
if DoSomething() = FAIL Then
return FAIL
end if
Finally
if MyFunc = FAIL then
Me.ErrorMsg = "failed"
endif
End Try
End Function
MyFunc = Effe가 합법적이라는 것을 알고 있습니다 (VB의 교수형으로). 쓰기 전용입니까 아니면 읽기가 가능합니까? 내 우려는 이것이 코딩이 좋지 않다
if MyFunc = FAIL Then
너무 비슷합니다
if MyFunc() = FAIL Then
매우 다른 결과를 가져옵니다!
제휴하지 않습니다 StackOverflow