掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB6と同じ固定長型するには? (ID:112634)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> これをVB.NETで同じようにしたい。 .NETには.NET向けのコーディングスタイルがありますから、 無理にVB6スタイルの言語仕様を引き継ごうとすると、 かえって難しくなってしまかも知れませんよ。 VB.NETには固定長文字列という機能がありませんし、 VB.NETの構造体はVB6のユーザー定義型とは、 厳密には異なるものなので、それら3つの条件を 同時にクリアするのは難しいです。 ファイル入出力など、限定された条件下であれば、 <System.Runtime.InteropServices.MarshalAs( _ System.Runtime.InteropServices.UnmanagedType.ByValTStr, _ SizeConst:=100), VBFixedString(10)> _ といった属性を付加する事で、ある程度の目的は果たせますが、 完全にVB6と同じ仕組みとなると無理でしょうね。 > ・サイズが10バイトであること。(SizeOfで図って) あれ? VB6の仕様は「10文字」であって、「10バイト」では無いはずですよ。 厳密に10バイトにしたいなら、Byte配列を使ってください。10文字なら、Char配列でしょうか。 ただし、配列の初期化は自前で行う必要があります。 (Initializeという名前のメソッドを用意して、それを呼び出す手法が良く利用されます) > 10文字に満たない場合、残りはスペース埋めになること。 構造体に、スペース埋めを行うPropertyを実装する事で対処できる化も知れません。 ただ、変数の初期化は自前で行う必要があるでしょうね。 Private _Name As String Property Name() As String Set(ByVal Value As String) _Name = Value.PadLeft(10).Substring(0, 10) End Set Get Return _Name End Get End Property
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.