Пример кода для демонстрации:
public void ReverseString(char[] s) {
for(int i = 0, j = s.Length-1; i < j; i++, j--){
//s[i] = s[i]+s[j]; //<-- error
s[i] += s[j]; //<-- ok
s[j] = (char)(s[i] - s[j]); //<-- cast
s[i] -= s[j];
}
}
Как и в приведенном выше фрагменте кода, в то время как s[i] += s[j]
работает без ошибок. Его эквивалентное утверждение s[i] = s[i]+s[j]
вызовет ошибку следующим образом
ошибка CS0266: невозможно неявное преобразование типа int в char. Существует явное преобразование (вам не хватает приведения?
У меня вопрос в чем их разница и почему. Заранее спасибо.