2013-08-16 3 views
1

내가 잘못하고 있는지 잘 모르겠다면, 기본적으로 코드는 "111111111"에서 시작하고 스레드가 할 수있을 때마다 "1"을 원래 숫자에 추가하여 계산합니다. 나는 "111111119"뒤에 "111111120"로가는 대신 "111111121"로 곧장 가고 싶습니다.VB.Net 바꾸지 않는가?

Private Sub IncreaseOne() 
    If count < 999999999 Then 
     count += 1 
    Else 
     done = True 
    End If 
    If CStr(count).Contains("0") Then 
     MsgBox("theres a 0 in that...darn.") 
     CStr(count).Replace("0", "1") 
    End If 
    End Sub 

* 참고, 내 메시지 상자가 표시가가 0이 교체의 효과를 반환합니다 문자열을 교체 1 초

답변

7

로 변경되지 않습니다에 생각하지만, 때, 그것은 장소에서 작동하지 않습니다. ...
(NET에서 문자열은 불변 객체, 기억)

Dim replaced = CStr(count).Replace("0", "1") 

당신이 정수로 얻은 문자열을 변환하고 계산 재 할당해야하지만.

count = Convert.ToInt32(replaced) 
+1

가 대단히 감사합니다, 나는 그것이 기능이 아닌 방법이었다 잊어 버렸습니다. – jgetrost

0

바꾸기는 스팅을 반환하는 함수입니다. 즉

, 당신은이 같은 결과를 저장하는 변수가 필요합니다

Dim newValue = CStr(count).Replace("0", "1") 
관련 문제