Codificação usada no elenco de char para byte

Dê uma olhada no seguinte código C # (função extraída doBuildProtectedURLWithValidity função emhttp://wmsauth.org/examples):

byte[] StringToBytesToBeHashed(string to_be_hashed) {
    byte[] to_be_hashed_byte_array = new byte[to_be_hashed.Length];
    int i = 0;
    foreach (char cur_char in to_be_hashed)
    {
        to_be_hashed_byte_array[i++] = (byte)cur_char;
    }
    return to_be_hashed_byte_array;
}

Minha pergunta é:O que o casting de byte para char faz em termos de codificação?

Eu acho que realmente não faz nada em termos de codificação, mas isso significa que o Coding.Default é o que é usado e assim o byte para retornar dependerá de como o framework irá codificar a string subjacente no sistema operacional específico?

E, além disso, o char é realmente maior que um byte (eu estou supondo 2 bytes) e irá realmente omitir o primeiro byte?

Eu estava pensando em substituir tudo isso por:

Encoding.UTF8.GetBytes(stringToBeHashed)

O que você acha?

questionAnswers(3)

yourAnswerToTheQuestion