gpt4 book ai didi

vb.net - 相当于 "Dim As String * 1"VB6 到 VB.NET

转载 作者:行者123 更新时间:2023-12-04 10:20:15 25 4
gpt4 key购买 nike

我有一些VB6代码需要迁移到VB.NET,想查询一下这行代码,看看有没有办法在.NET中实现

Dim strChar1 As String * 1

Intellisense 不断告诉我,预计语句结束。

最佳答案

这就是所谓的“固定长度”字符串。 VB.NET 中没有完全等价的。

Edit: Well, OK, there's VBFixedStringAttribute, but I'm pretty sure that exists solely so that automated migration tools can more easily convert VB6 code to VB.NET for you, and it's not really the ".NET way" to do things. Also see the warnings in the article for details on why this still isn't exactly the same thing as a fixed-length string in VB6.


通常,固定长度字符串仅在您从文件或通过网络读取固定大小的记录(即解析协议(protocol)帧中的 header )时在 VB6 中使用。
例如,您可能有一个包含一组固定长度记录的文件,这些记录的格式都为 。 (整数,1 个字符的字符串, double ) ,您可以在 VB6 中将其表示为用户定义的类型:
公共(public)类型记录
anInteger 作为整数
aSingleCharacter 作为字符串 * 1
a双倍
结束类型

这样,从包含这种格式记录的文件中读取的 VB6 代码可以读取文件中存储的每个固定大小的记录,特别是对于 aSingleCharacter,它只会读取 1 个字节。 .没有 * 1 , VB6 不知道要从文件中读取多少个字符,因为 String通常可以有任意数量的字符。
在 VB.NET 中,您可以根据需要执行以下操作之一:
  • 如果长度很重要(例如,您需要从某个数据源中读取一个字节),请考虑改用数组,例如Dim aSingleByteArray(1) As Byte
  • 或者,您可以使用 之一Stream 类。特别是,如果您正在从网络套接字或文件读取数据,请考虑使用 NetworkStream FileStream , 分别。一个 直播 用于逐字节访问(即原始二进制访问)。 StreamReader 是一个相关的类,它简化了基于文本的数据读取,例如,如果您正在读取文本文件,这可能会很好。否则(如果处理二进制数据),坚持使用 之一直播 类。
  • 如果长度无关紧要,您可以使用“正常”String .也就是说:Dim aNormalString As String

  • 哪个答案是“正确的”实际上取决于为什么在原始 VB6 代码中以这种方式声明它。

    关于vb.net - 相当于 "Dim As String * 1"VB6 到 VB.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9578990/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com