As3 bytearray для c # bytearray

1

Я хочу преобразовать этот фрагмент кода в С#:

        var local1:ByteArray= new ByteArray();
        var auth:String = root.loaderInfo.parameters.auth as String;
        var key0:String = root.loaderInfo.parameters.key0 as String;
        var key1:String = root.loaderInfo.parameters.key1 as String;
        var key2:String = root.loaderInfo.parameters.key2 as String;
        var key3:String = root.loaderInfo.parameters.key3 as String;


        local1.writeUnsignedInt(parse(auth));
        local1.writeUnsignedInt(parse(key0));
        local1.writeUnsignedInt(parse(key1));
        local1.writeUnsignedInt(parse(key2));
        local1.writeUnsignedInt(parse(key3));
        trace(local1)

Вы видите, как я напрямую печатаю массив байтов, не преобразовывая его в строку. Как вы можете это сделать в С#? Предположим напечатать что-то вроде этого: TV~ 3 R ji

Теги:
actionscript-3
byte
actionscript-2

1 ответ

0
Лучший ответ

Если массив содержит то, что может быть интерпретировано как коды символов, вы можете декодировать байты в текст. Например:

string localText = Encoding.Default.GetString(local1);

Используемая кодировка будет зависеть от того, как текст был сначала преобразован в байты.

Вы можете использовать MemoryStream и BinaryWriter для размещения целых чисел в массиве. Пример:

string auth = "1"; // example data, would come from your object
string key0 = "2";

byte[] local1;
using (MemoryStream m = new MemoryStream()) {
  using (BinaryWriter w = new BinaryWriter(m)) {
    w.Write(Int32.Parse(auth));
    w.Write(Int32.Parse(key0));
  }
  local1 = m.ToArray(); 
}

foreach(var g in local1)
{
  Console.WriteLine((char)g);
}
  • 0
    Все, что идет в массив байтов, является числами, преобразованными в целые числа без знака. var auth: String, а остальные - целые
  • 0
    @ Марк: Понятно. Я добавил пример кода для помещения целых чисел в байтовый массив.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню