문제

VBScript에 대해 이야기하는 모든 사이트에서&'연산자는 문자열 연결 연산자로 나열됩니다. 그러나 최근에 상속 된 일부 코드에서는 '+'운영자가 사용되고 있으며 그 결과로 오류가 표시되지 않습니다. 이것은 받아 들여진 대안입니까?

도움이 되었습니까?

해결책

+ 연산자는 과부하가 걸리지 만 & 운영자는 그렇지 않습니다. & 연산자는 문자열 연결 만 수행합니다. 일부 서클에서는 & 운영자가 모호하지 않기 때문에 모범 사례로 사용되므로 과부하의 결과로 의도하지 않은 효과를 가질 수 없습니다.

다른 팁

그만큼 & 연산자는 문자열 연결을 수행합니다. 즉, 강제 피연산자는 문자열로 변환됩니다 ( CStr 그들에게 먼저). +, 그 차례에, 표현 중 하나가 숫자 인 경우 강제 추가. 예를 들어:

1 & 2

당신을 준다 12, 반면

1 + 2
"1" + 2
1 + "2"

당신을 줘 3.

따라서 사용하는 것이 좋습니다 & 모호성을 제거하기 때문에 문자열 연결의 경우.

+ 문자열을 숫자로 해석 할 수있을 때 연산자가 역효과를 낼 수 있습니다. 당신이 불쾌한 놀라움을 원하지 않는다면, 끈을 사용하고 끈을 연결합니다.

어떤 경우에는 +가 예외를 던집니다. 예를 들어 다음과 같습니다.

Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
   'fvalue is a floating point number
   MsgBox "Received Event: " + fvalue
End Sub

COM 객체 소스가 이벤트를 시작하면 예외가 나타납니다. 다음 중 하나를 수행해야합니다.

MsgBox "Received Event: " & fvalue

또는

MsgBox "Received Event: " + CStr(fvalue)

사용하는 것이 가장 좋을 수 있습니다 CStr(value); 그러나 문자열 연결에 대한 위의 의견을 사용하는 것은 거의 항상 모범 사례입니다.

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