вопрос о типе данных C # - PullRequest
       15

вопрос о типе данных C #

2 голосов
/ 24 января 2011

Были ли определены типы данных Binary и ASCII в C # 2.0?

Я планирую обнаружить несколько переменных типа Binary, ASCII или Integer (sbyte, byte, short, ushort, long, ulong).

Я могу использовать typeof(sbyte) и т. Д.

Но я не смог реализовать как это typeof(binary) или typeof(ascii). Что мне нужно, это что-то вроде этой функции typeof для определения переменных типа Binary или ASCII?

[обновление]

           format code    Octal
Binary         001000      10
ASCII          010000      20

Ответы [ 3 ]

3 голосов
/ 24 января 2011

Обычно вы сохраняете текстовые данные в строку, а двоичные данные в byte[]. Не пытайтесь хранить двоичные данные в строке, применяя произвольную кодировку. Например, если вы попытаетесь использовать Encoding.UTF8.GetString(binaryData), весьма вероятно, что вы не сможете вернуть исходные данные еще раз.

Если вам нужно хранить двоичные данные в строке, вы должны использовать что-то вроде Convert.ToBase64String (а затем Convert.FromBase64String), в котором хранятся 3 байта двоичных данных на каждые 4 символа в строке.

Если вам необходимо сохранить данные в виде строки и типа исходных данных, вам следует либо сохранить тип отдельно, либо сохранить составную форму, например «type: data». Примеры строк могут быть:

int:10
string:10 // The digits 1 and 0, but originally as text, not a number
binary:hFed234= // Base-64-encoded data
2 голосов
/ 24 января 2011
1 голос
/ 24 января 2011

Вам нужно попытаться разобрать его в подходящий тип данных.Установите их с приоритетом.

Что-то вроде:

1) Try to parse integer, if fail continue
2) Try to parse text, if fail continue
3) Save binary

Для автоматического определения кодировки см. Определение кодировки строки в C #

...