Две действия, които не мога да си обясня!
Здравейте, името на темата не е най-доброто, но не знам как иначе да я именувам. Става на въпрос за следното нещо.
string input = "Hi";
int a = input[0]; (това е равно на 72, защото явно в Unicode таблицата буквата "H" е равна на 72 в decimal репрезентация)
НО АКО НАПИШЕМ
string unicode = ((int)input[0]).ToString("x4"); (Това ще бъде равно на 0048, колкото е Unicode репрезентацията на буквата "H")
След малък експеримен ако прoменим ToString("x4") на ToString("x5"), то явно резултата ще стане 00048, т.е. това в скобите служи за форматиране на резултата, макар аз да не знам, а и не помня да сме учили, че можем да задаваме някакви стойности на .ToString() метода.
Сега аз съм в пълно недоумение, как подяволите когато кастнем char 'H' към Int, което от по-горния пример знаем, че е = 72, като му сложим .ToString("x") метода и то вече е равно на 0048. Явно роля играе "х" в скобите, защото ако го променим да няма стойност в метода то ще върне 72, а в случеят 4-ката след това го допълва до 4 символа с 0-ли след като някак си е конвертирано към Unicode.
Но в крайна сметка, аз пак не мога да си обясня какво точно се случва!
Между другото, става на въпрос за задача 5, в домашното за Стрингообработка.
Моля някой да ми помогне да разбера, но по възможно най-елементарния и подробен начин, за да е сигурно, че всеки ще може да го разбере.