2016-10-26 3 views
-2

이 내 코드;null의 char 값을 반환

public void Dönüştür() 
{ 
    int TextboxLength = TextBox.MaxLength; 
    string LowerText = TextBox.Text.ToLower(); 
    var AllCharacters = ""; 

    for (int i = 0; i < TextboxLength; i++) 
    { 
     char Characters = char.Parse(LowerText); 
     switch (Characters) 
     { 
      case '0': AllCharacters += "0"; break; 
      case '1': AllCharacters += "1"; break; 
      case '2': AllCharacters += "2"; break; 
      case '3': AllCharacters += "3"; break; 
      case '4': AllCharacters += "4"; break; 
      case '5': AllCharacters += "5"; break; 
      case '6': AllCharacters += "6"; break; 
      case '7': AllCharacters += "7"; break; 
      case '8': AllCharacters += "8"; break; 
      case '9': AllCharacters += "9"; break; 

      case ' ': case '+': case '-': case '_': AllCharacters += "0"; break; 
      case ':': case ';': case '=': case ',': case '.': AllCharacters += "1"; break; 
      case 'a': case 'b': case 'c': case 'ç': AllCharacters += "2"; break; 
      case 'd': case 'e': case 'f': AllCharacters += "3"; break; 
      case 'g': case 'ğ': case 'h': case 'ı': case 'i': AllCharacters += "4"; break; 
      case 'j': case 'k': case 'l': AllCharacters += "5"; break; 
      case 'm': case 'n': case 'o': case 'ö': AllCharacters += "6"; break; 
      case 'p': case 'r': case 's': case 'ş': AllCharacters += "7"; break; 
      case 't': case 'u': case 'ü': AllCharacters += "8"; break; 
      case 'v': case 'y': case 'z': case 'x': case 'w': AllCharacters += "9"; break; 
     } 

    } 
    MessageBox.Show(TextBox.MaxLength.ToString(), "TextBox MaxLength:"); 
    MessageBox.Show(AllCharacters.ToString(), "AllCharacters value:"); 
} 

숫자를 문자로 변환하고 싶습니다. char 값이지만 비어있는 것 같습니다. 루프가 작동하지 않습니다에 대한 있지만

선택하면

AllCharacters

는 텍스트 상자가 가득합니다. 그 이유는 TextBox가 0이지만 TextBox가 채워질 수 있기 때문입니다. 문제가 무엇인지

MaxLength

, 어디 실수는 무엇입니까?

+0

https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –

+0

이 사이트는 무엇입니까? 나는 단지 궁금해하는 질문을했다, 나는 배우고있다. 그건 나쁜 것이 아닙니다. –

답변

1

TextBox.MaxLength에 지정된 횟수만큼 반복하고 있습니다.이 숫자는 0입니다. 따라서 전혀 반복되지 않습니다. TextBox.Text.Length을 반복하려고 했습니까?

0보다 크게 설정하면 MaxLength 속성은 입력란에 입력 할 수있는 문자 수를 제한합니다.

for (int i = 0; i < TextBox.Text.Length; i++) 
    { 
     char Characters = LowerText[i]; 
     ... 
    } 
+2

또한,이 줄은'char Characters = char.Parse (LowerText);'라고 생각하지 않는다. 대신'foreach (TextBox.Text에서 char chVal) '루프를 사용해보십시오 – Theo