关于C#数据类型的问题

发布于 2024-10-13 11:16:40 字数 428 浏览 5 评论 0原文

C# 2.0 中是否定义了 BinaryASCII 数据类型?

我计划检测几个变量是 Binary 或 ASCII 或 Integer(sbyte、byte、short、ushort、long、ulong) 类型。

我可以使用 typeof(sbyte) 等。

但我未能实现这个 typeof(binary)typeof(ascii)。 我需要的是类似 typeof 函数来检测变量是二进制还是 ASCII 类型?

[更新]

           format code    Octal
Binary         001000      10
ASCII          010000      20

Did Binary and ASCII data type had been defined in C# 2.0?

I plan to detect several variables are Binary or ASCII or Integer(sbyte, byte, short, ushort, long, ulong) types.

I can use typeof(sbyte) ect.

But I failed to implement as this typeof(binary) or typeof(ascii).
What I need is something like this typeof function to detect the variables are Binary or ASCII type?

[update]

           format code    Octal
Binary         001000      10
ASCII          010000      20

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧伤还要旧人安 2024-10-20 11:16:40

通常,您会将文本数据存储在字符串中,将二进制数据存储在 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

Normally you would store text data in a string, and binary data in a byte[]. Do not try to store binary data in a string by applying an arbitrary encoding. For example, if you try to use Encoding.UTF8.GetString(binaryData) then it's highly likely that you won't be able to get the original data back again.

If you need to store binary data in a string, you should use something like Convert.ToBase64String (and then Convert.FromBase64String) which stores 3 bytes of binary data in each 4 characters in the string.

If you need to store data in a string and the type of the original data, you should either store the type separately, or keep a compound form such as "type:data". Sample strings might then be:

int:10
string:10 // The digits 1 and 0, but originally as text, not a number
binary:hFed234= // Base-64-encoded data
和我恋爱吧 2024-10-20 11:16:40

您需要尝试将其解析为合适的数据类型。优先设置它们。

例如:

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

要自动检测编码,请参阅 确定 C# 中的字符串编码

You need to attempt-parse it into a fitting datatype. Set them up with priority.

Something like:

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

To autodetect encoding see Determine a string's encoding in C#

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文