私が理解していることから、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
ここで文字列を渡すことができます。文字列の長さが指定された合計長よりも大きい場合は、その長さに一致する文字列が取得されます。それ以下の場合は、文字列と指定された全長までのパディング文字が得られます。
これは、エラー チェックと、メソッドを拡張メソッドにすることで改善できるため、「値」を渡す必要はありません。