Witam z kodu
string f1 = "FFFF";
string frame = f1[2] + f1[3] + " " + f1[0] + f1[1];
Po wydrukowaniu zmiennej frame dostaje "140 FF"
Ktoś wie co może być przyczyną?
Witam z kodu
string f1 = "FFFF";
string frame = f1[2] + f1[3] + " " + f1[0] + f1[1];
Po wydrukowaniu zmiennej frame dostaje "140 FF"
Ktoś wie co może być przyczyną?
Dodam jeszcze, że po rozdzieleniu dwóch pierwszych "FF" dodatkową spacją t.j.
string frame = f1[2] + " " + f1[3] + " " + f1[0] + f1[1];
dostaję ładne "F F FF"
f1[2] + f1[3]
jest traktowane jako dodawanie liczb ('F'
w tablicy ASCII ma wartość 70)
No tak, a dlaczego dwa pozostałe drukuje dobrze?
W momencie gdy jedna strona dodawania jest stringiem całość jest traktowana jako konkatenacja stringów, a liczba jest konwertowana na jej reprezentację liczbowątekstową. Czyli dodając
140 + " "
dostajesz string
"140 "
Potem dodanie tego stringa do f1[0]
powoduje dalszą konkatenację, itd.
Inaczej mówiąc, dodaj "" +
na sam początek i powinno być dobrze.
Okey, dodałem już wcześniej
f1[2].ToString()
ale byłem ciekaw dlaczego dzieje się tak a nie inaczej.
Dzięki za odpowiedź. :)
Bardziej polecałbym string.Format() zamiast bawic sie w takie cos. Czytelniej, no i nie dostaniesz znakow z kosmosu ;)