掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
型の違う構造体をコピーするには (ID:84076)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 構造体の数が多い場合はコーディング量もかなりのものになると思いますが、 であれば、リフレクションでメンバを列挙するとか。 <StructLayout(LayoutKind.Sequential)> _ Structure MyStructure Dim A As String Dim B As String Dim C As String End Structure Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Test As MyStructure Dim T As Type = GetType(MyStructure) Test.A = "あいうえお" Test.B = "かきくけこ" For Each F As Reflection.FieldInfo In T.GetFields() Dim O As Object = F.GetValue(Test) If O Is Nothing Then MessageBox.Show(F.Name & " = Nothing") Else MessageBox.Show(String.Format("{0} = ""{1}""", F.Name, F.GetValue(Test))) End If Next End Sub もし、メンバの順番が重要な場合は、適当なカスタム属性を各フィールドに 与えておき、それを使って順番を識別するとか。。。 > RtlMoveMemoryなども試してみたのですが、パラメータの与え方が悪いのか > うまくいかないのですが。。。 VB6でも、「As String」(自由長文字列型)を含んだユーザー定義型は、 LSetやRtlMoveMemoryではコピーできず、メンバ毎に個別に複写する 必要がありましたよね。VB.NETも同様なのでは。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.