据我了解,该VBFixedString
属性仅被某些基于文件的方法识别,以帮助构建写入/读取文件的内容。编译器不会将该属性用于其他任何事情,包括更改变量赋值的编译方式。
取自 MSDN:
VBFixedStringAttribute 是信息性的,不能用于将可变长度字符串转换为固定字符串。此属性的目的是修改识别 VBFixedStringAttribute 的方法或 API 调用如何使用结构和非局部变量中的字符串。请记住,此属性不会更改字符串本身的实际长度。
最后一句话很重要:
请记住,此属性不会更改字符串本身的实际长度。
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.vbfixedstringattribute.aspx
编辑1:
关于如何根据固定长度自动填充字符串的快速示例:
Function FixedLengthString(ByVal value As String, ByVal totalLength As Integer, ByVal padding As Char) As String
Dim length = value.Length
If (length > totalLength) Then Return value.Substring(0, totalLength)
Return value.PadRight(totalLength, padding)
End Function
在这里你可以传入一个字符串,如果字符串的长度大于指定的总长度,你将得到一个匹配该长度的字符串。少一点,你会得到字符串加上填充字符,直到指定的总长度。
这可以通过错误检查来改进,并且可能使该方法成为扩展方法,这样您就不必传递“值”。