Это называется строкой фиксированной длины.В VB.NET нет точного эквивалента.
Редактировать : Хорошо, хорошо, есть VBFixedStringAttribute , но яЯ уверен, что он существует исключительно для того, чтобы инструменты автоматической миграции могли более легко преобразовать код VB6 в VB.NET для вас, и на самом деле это не «способ .NET».Также см. Предупреждения в статье, чтобы узнать, почему это по-прежнему не то же самое, что строка фиксированной длины в VB6.
Обычно строки фиксированной длины используются только в VB6, есливы читаете записи фиксированного размера из файла или по сети (то есть анализируете заголовки в кадре протокола).
Например, у вас может быть файл, содержащий набор записей фиксированной длины, которые все имеютформат (целое число, 1-символьная строка, двойная) , который вы можете представить в VB6 как пользовательский тип:
Public Type Record
anInteger As Integer
aSingleCharacter As String * 1
aDouble As Double
End Type
Таким образом, код VB6, который читает изфайл, содержащий записи в этом формате, может читать каждую запись фиксированного размера, сохраненную в файле, и, в частности, он будет читать только 1 байт для aSingleCharacter
.Без * 1
VB6 не знал бы, сколько символов нужно прочитать из файла, поскольку String
обычно может содержать любое количество символов.
В VB.NET вы можете выполнить один изследующие, в зависимости от ваших потребностей:
Если длина имеет значение (например, вам необходимо прочитать ровно один байт из какого-либо источника данных, например), рассмотрите возможность использования массива, например,
Dim aSingleByteArray(1) As Byte
В качестве альтернативы вы можете использовать один из классов Stream .В частности, если вы читаете данные из сетевого сокета или файла, рассмотрите возможность использования NetworkStream или FileStream , соответственно. Stream предназначен для побайтового доступа (то есть необработанного двоичного доступа). StreamReader - это связанный класс, который упрощает чтение данных, когда они основаны на тексте, что может быть полезно, например, при чтении текстового файла.В противном случае (если речь идет о двоичных данных), придерживайтесь одного из Stream классов.
Если длина не имеет значения, вы можете просто использовать "нормальный""String
.То есть:
Dim aNormalString As String
Какой ответ является «правильным», действительно зависит от того, почему он был объявлен таким образом в исходном коде VB6.