回答編集履歴

1

コード追記

2016/05/23 08:20

投稿

tkturbo
tkturbo

スコア5572

answer CHANGED
@@ -1,3 +1,29 @@
1
1
  リフレクションを使うというのはどうでしょう?
2
2
 
3
- [リフレクションを使って構造体フィールドに値を設定する(FieldInfo.SetValue) - Programming/.NET Framework/Tips - 総武ソフトウェア推進所](http://smdn.jp/programming/netfx/tips/set_struct_field_using_reflection/)
3
+ [リフレクションを使って構造体フィールドに値を設定する(FieldInfo.SetValue) - Programming/.NET Framework/Tips - 総武ソフトウェア推進所](http://smdn.jp/programming/netfx/tips/set_struct_field_using_reflection/)
4
+
5
+ ■追記:サンプルコード
6
+ ```VB
7
+ Imports System
8
+ Imports System.Reflection
9
+
10
+ Public Class Test
11
+ Public Shared Sub Main()
12
+ Dim s As new MES_DATA_STRUCTURE
13
+ Dim v As ValueType = s
14
+ Dim fieldInfo() As FieldInfo = s.GetType().GetFields( _
15
+ BindingFlags.Instance Or BindingFlags.Public)
16
+ For Each f As FieldInfo In fieldInfo
17
+ f.SetValue(v, -999)
18
+ Next f
19
+ Console.WriteLine(s.Tc) ' 初期化されて「-999」が出力される
20
+ End Sub
21
+ End Class
22
+
23
+ Structure MES_DATA_STRUCTURE
24
+ Public Tc As Double
25
+ Public Vp As Double
26
+ Public Vc As Double
27
+ Public Id As Double
28
+ End Structure
29
+ ```