왜 VB가.문자열만 반환하는 Net 함수는 실제로 한 글자만 반환합니까?
문자열을 반환하는 함수를 호출하고 있지만, 반환해야 할 문자열의 첫 번째 문자만 반환합니다.
다음은 현재 발생하고 있는 문제를 재현하기 위한 코드 샘플입니다.
Public Function GetSomeStringValue(Value as Integer) As String
... Code Goes here
Return Some_Multicharacter_string
End Function
함수 호출은 다음과 같습니다.
SomeStringValue = GetSomeStringValue(Value)
전체 문자열을 반환하지 않는 이유는 무엇입니까?
참고: 이 답변은 원래 OP인 키비가 자가 답변으로 작성한 것입니다.다만 실제 별도의 답변이 아닌 질문 본문에 적혀 있었습니다.OP가 주최자를 포함한 다른 사용자들의 사이트 규칙에 따라 재게시 요청을 거부했기 때문에, 제가 직접 재게시합니다.
제 코드를 리팩터링하고, 디버거의 코드를 여러 번 훑어보고, 심지어 동료에게 문제를 조사하게 한 후, 저는 천재적인 순간에 마침내 답을 발견했습니다.
코드를 리팩터링할 때 Value 매개변수를 제거하기 위해 함수를 변경하여 다음과 같이 남겼습니다.
Public Function GetSomeStringValue() As String
... Code Goes here
Return Some_Multicharacter_String
End Function
그러나 함수를 호출할 때 전달하던 매개 변수를 제거하지 않았습니다.
SomeStringValue = GetSomeStringValue(Value)
컴파일러는 VB6일의 레거시 기능인 괄호 없이 함수를 호출하는 것으로 해석했기 때문에 불평하지 않았습니다.그런 다음 Value 매개 변수가 함수에서 반환된 문자열(문자 배열)의 배열 인덱스로 변환됩니다.
그래서 매개 변수를 제거했고 모든 것이 잘 작동했습니다.
SomeStringValue = GetSomeStringValue()
저는 다른 사람들이 문제에 직면했을 때 문제를 인식하고 저보다 훨씬 더 빨리 해결할 수 있도록 이 글을 올립니다.제가 해결하는 데 시간이 꽤 걸렸으며, 다른 사람들을 구할 수 있는 시간이 있었으면 좋겠습니다.
언급URL : https://stackoverflow.com/questions/142697/why-does-a-vb-net-function-that-returns-string-only-actually-return-a-single-cha
'programing' 카테고리의 다른 글
뷰 상태 디코딩 방법 (0) | 2023.06.13 |
---|---|
Python json 인코더가 Python의 새 데이터 클래스를 지원하도록 합니다. (0) | 2023.06.13 |
mysqdump는 MariaDB 5.5의 데이터베이스에 테이블을 덤프하지 않습니다. (0) | 2023.06.08 |
모카 유닛 테스트에 대한 사용자 정의 오류 메시지와 함께 차이 기대치를 제공하는 방법은 무엇입니까? (0) | 2023.06.08 |
각 요청에 따라.파일 (0) | 2023.06.08 |