Вы можете определить переменную в одном из классов и затем изменить ее следующим образом:
var saisie: String?
Затем в IBAction:
saisie = chauffeur_nom.text
Это сложилось, который, что я действительно хотел, был этим:
short number = 17;
System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream);
writer.Write(number);
writer.Flush();
ключ здесь является функцией Записи класса BinaryWriter. Это имеет 18 перегрузок, преобразовывая различные форматы в массив байтов, который это пишет в поток. В моем случае я должен удостовериться число, которое я хочу записать, сохранен в коротком типе данных, это заставит функцию Записи записать 2 байта.
РЕДАКТИРОВАНИЕ: я предполагаю, что Вы хотите преобразовать значение целого числа к массиву байтов а не значение, преобразованное в строку сначала, и затем в массив байтов (проверьте ответ marc на последнего.)
Для преобразования интервала в массив байтов можно использовать:
byte[] array = BitConverter.GetBytes(17);
, но это даст Вам массив 4 байтов а не 2 (так как интервал составляет 32 бита.) Для получения массива 2 байтов, необходимо использовать:
byte[] array = BitConverter.GetBytes((short)17);
, Если Вы просто хотите преобразовать значение 17 в два символа затем, используйте:
string result = string.Format("{0:00}", 17);
, Но поскольку marc указал, что результат использует 4 байта, так как каждый символ в.NET составляет 2 байта (UTF-16) (включая два байта, которые содержат длину строки, это будут 6 байтов).
string s = string.Format("{0:00}", number)
первый 0 означает "первый аргумент" (т.е. число); 00 после двоеточия являются спецификатором формата (2 числовых цифры).
Однако примечание, что строки.NET являются UTF-16, таким образом, 2 символьных строки составляют 4 байта, не 2
(редактирование: вопрос, измененный от string
до byte[]
)
Для получения байтов, используйте Encoding
:
byte[] raw = Encoding.UTF8.GetBytes(s);
(очевидно различная кодировка может дать различные результаты; UTF8 даст 2 байта для этих данных)
На самом деле, более короткая версия первого бита:
string s = number.ToString("00");
, Но string.Format
версия более гибка.