Convertendo string em array de bytes em C#: como fazer corretamente?
Olá a todos. Sou um desenvolvedor C# iniciante e encontrei um problema ao trabalhar com requisições de rede e arquivos. Preciso converter uma string comum em um array de bytes (byte[]) para enviá-la através de um socket ou gravá-la em um arquivo binário.
O problema é que não entendo qual é a maneira correta. Tentei usar `BitConverter.GetBytes()`, mas ele retorna um array onde cada caractere ocupa 4 bytes, o que claramente não é o que eu esperava. Também vi na internet menções a `Encoding.ASCII.GetBytes()` e `Encoding.UTF8.GetBytes()`. Qual é a diferença? Se eu simplesmente escrever `(byte[])myString` — isso nem compila.
Aqui está um exemplo do meu código que não funciona como eu quero:
```csharp
string message = "Привет, мир!";
byte[] bytes = BitConverter.GetBytes(message); // Erro ou não é o que preciso
```
Por favor, me digam como converter corretamente uma string em um array de bytes, para que eu possa recuperá-la depois? E é necessário considerar a codificação? Agradeço por uma explicação detalhada.