2015-10-27 2 views
-3
static void removeSpaces(ref String arg) 
{ 
    String temp = ""; 

    for (int i = 0; i < arg.Length; ++i) { 
     if (arg[i] != ' ') 
     { 
      temp = arg[i]; // gives error 
      temp += arg[i]; // works fine, no error 
     } 
    } 
} 
+2

'arg [i]' is 'char',' temp' is 'string'. Существует неявный разговор от 'char' до' string'. Если вы _carefully_ прочитаете свое сообщение об ошибке, вы можете его найти. Для вашей второй строки оператор '+' вызывает 'ToString' метод для' arg [i] ', поэтому он действует как temp = temp + arg [i] .ToString()', который действителен. –

+3

, потому что мы не можем назначить одного символа в строку !! вы должны сделать это 'arg [i] .ToString();' –

+1

Почему бы не просто 'str = str.Replace (" ", string.Empty);'? – Nasreddine

ответ

1

В этой линии, вы пытаетесь присвоить символ,

temp = arg[i]; 

Здесь вы присоединяя символ в строку, которая будет работать,

temp += arg[i]; 

Чтобы заставить его работать, вам необходимо преобразовать в строку

temp = arg[i].ToString(); 
Смежные вопросы