是否在C#2.0中定义了Binary
和ASCII
数据类型?
我计划检测几个变量是Binary或ASCII或Integer(sbyte,byte,short,ushort,long,ulong)类型。
我可以使用typeof(sbyte)
等。
但我没有按照typeof(binary)
或typeof(ascii)
来实施。
我需要的是像这种类型的函数来检测变量是二进制还是ASCII类型?
[更新]
format code Octal
Binary 001000 10
ASCII 010000 20
答案 0 :(得分:3)
通常,您将文本数据存储在字符串中,而二进制数据存储在byte[]
中。 不要尝试通过应用任意编码将二进制数据存储在字符串中。例如,如果您尝试使用Encoding.UTF8.GetString(binaryData)
,那么您很可能无法获得原始数据又回来了。
如果你需要在字符串中存储二进制数据,你应该使用类似Convert.ToBase64String
(然后Convert.FromBase64String
)的东西,它在字符串的每4个字符中存储3个字节的二进制数据。
如果您需要将数据存储在字符串和中,原始数据的类型,您应该单独存储类型,或保留复合形式,如“type:data”。然后样本字符串可能是:
int:10
string:10 // The digits 1 and 0, but originally as text, not a number
binary:hFed234= // Base-64-encoded data
答案 1 :(得分:2)
答案 2 :(得分:1)
您需要尝试将其解析为适合的数据类型。优先设置它们。
类似的东西:
1) Try to parse integer, if fail continue
2) Try to parse text, if fail continue
3) Save binary
要自动检测编码,请参阅Determine a string's encoding in C#