문자열을 반환하는 vb.net 함수가 실제로 단일 문자 만 반환하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/142697

  •  02-07-2019
  •  | 
  •  

문제

문자열을 반환하는 함수를 호출하지만 실제로는 문자열의 첫 번째 문자 만 반환해야합니다.

다음은 내가 겪고있는 문제를 재현하기위한 샘플 코드입니다.

Public Function GetSomeStringValue(Value as Integer) As String
    ... Code Goes here
    Return Some_Multicharacter_string
End Function

함수 호출은 다음과 같습니다.

SomeStringValue = GetSomeStringValue(Value)

이것이 전체 문자열을 반환하지 않는 이유는 무엇입니까?

도움이 되었습니까?

해결책

참고 :이 답변은 원래 OP, Kibbee가 자체 답변으로 작성했습니다. 그러나 실제 별도의 답변이 아니라 질문의 본문에 작성되었습니다. OP는 사이트 규칙에 따라 중재자를 포함한 다른 사용자의 반복 요청을 거부 했으므로 직접 다시 게시하고 있습니다.

100 개의 다른 것을 시도하고, 내 코드를 리팩토링하고, 디버거의 코드를 여러 번 밟고, 동료가 문제를 조사하도록하더라도 마침내 천재의 플래시에서 답을 발견했습니다.

코드를 리팩토링 할 때 어느 시점에서 값 매개 변수를 제거하도록 함수를 변경하여 다음과 같이 남겨 둡니다.

Public Function GetSomeStringValue() As String
    ... Code Goes here
    Return Some_Multicharacter_String
End Function

그러나 기능을 호출 할 때 전달한 매개 변수를 제거하는 것을 무시했습니다.

SomeStringValue = GetSomeStringValue(Value)

컴파일러는 VB6 일의 레거시 기능인 브래킷없이 기능을 호출하는 것으로 해석했기 때문에 불만을 제기하지 않았습니다. 그런 다음 값 매개 변수는 함수에서 반환 된 문자열 (일명 문자 배열)의 배열 인덱스로 변환되었습니다.

그래서 매개 변수를 제거하고 모든 것이 잘 작동했습니다.

SomeStringValue = GetSomeStringValue()

나는 다른 사람들이 문제를 인식 할 수 있도록 이것을 게시하고 나보다 훨씬 더 빨리 해결할 수 있도록 문제를 인식 할 수 있도록 이것을 게시하고 있습니다. 내가 해결하는 데 꽤 오랜 시간이 걸렸으며, 다른 사람들이 시간을 절약 할 수 있기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top