2014-07-17 6 views
0

Visual Basic에서 작업하고 있습니다. 함수를 통해 레이블에 정수를 전달하지만 레이블에 System.Int32[]이라는 값이 표시되고 '완료'를 클릭하면 저장되고 저장 파일에 올바른 숫자가 표시됩니다. 당신이 극명하게 될 것이다 나에게 몇 가지 조언을주고 그것을 도울 수 있다면 당신은 당신이 가지고 일부 코딩 오류를 지적 할 것이다 Option Strict On를 사용하는 경우, 당신에게Visual Basic의 텍스트 상자에 System.Int32 []가 표시됩니다.

'function for adding 1 point to your selected level. 
Private Function SkillPoints(IntSkill) 
     'checks if you have enough level points 
     If IntLevel > 0 Then 
      'adds 1 point to the selected skill and minuses 1 from Intlevel 
      Intskillpoints(IntSkill) += 1 
      IntLevel -= 1 
      LblLvlPoints.Text = IntLevel 
     Else 
      MsgBox("You have run out of skill points.") 
     End If 
     ' returns the value to be shown in the label 
     Return Intskillpoints 
    End Function 


    Private Sub BtnAtkPlus_Click(sender As Object, e As EventArgs) Handles BtnAtkPlus.Click 
    'when you click the button it sets the lbl to the result of the function. 
     LblAttackPoints.Text = SkillPoints(0).ToString 
    End Sub 
+1

아마도 대신 Intskillpoints (IntSkill)를 보내시겠습니까? –

+2

당신은 정말로 Option Strict –

+0

@MikeChristensen이 별도의 답변으로 답변을 게시하도록 설정해야합니다 :) –

답변

0

이 문제가 발생하는 사용자는 배열 색인을 놓친 것 같습니다. 내 경우에는 배열 인덱스를 반환하지 않았지만 실제 배열은 다음과 같습니다.

Return Intskillpoints 

이 방법은 전체 배열을 반환합니다. 하지만 같아야

Return Intskillpoints(IntSkill) 

이 방법은 어레이에서의 값이 아니라, 전체 어레이를 리턴한다.

4

감사합니다.

LblLvlPoints.Text = IntLevel.ToString() 

: 텍스트로 그것을 사용하는 당신은 문자열로 정수를 변환해야합니다

Private Function SkillPoints(IntSkill As Integer) As Integer() 

:

당신은 함수에 전달 된 변수의 유형과 반환 값을 선언 할 필요가 추신 "Visual Basic"이 아닌 "Visual Basic"입니다.

P.P.S. 라벨에 System.Int32[]이 표시되는 이유는 어떻게 든 배열에 .ToString()을 사용했기 때문입니다 (() 대신 을 사용하여 배열을 표시합니다). 따라서 스칼라가 아닌 배열을 어떻게 추적해야 하는지를 추적해야합니다. Option Strict On을 사용하면 모든 수정 작업을 완료해야 문제가 해결 될 수 있습니다.

+0

그가 무엇을 하려는지는 모르지만 유형 이름 표시는 skillPoints가 'SkillPoints (0) .ToString'에서옵니다. 함수는 배열을 반환합니다. 그는 "... 정수를 함수를 통해 레이블에 넘김"을 기반으로 배열 내용을 표시하려고 할 수 있습니다. – Plutonix

+0

@Plutonix OP는 어떤 레이블이'System.Int32 []'을 표시하는지 말하지 않았습니다. 유형이 고정 될 때까지 근본적인 문제를 해결하기 위해 미스테리 흔적에 처해 있다고 생각합니다.) 그런 다음 부작용이있는 함수가 그다지 좋은 이유가 아닌 이유에 대해 작업 할 수 있습니다. –

+0

... 또는 Visual Basic에서 버그 일 수 있습니다. – Plutonix