回答編集履歴

1

コード追記

2016/05/23 08:20

投稿

tkturbo
tkturbo

スコア5572

test CHANGED
@@ -3,3 +3,57 @@
3
3
 
4
4
 
5
5
  [リフレクションを使って構造体フィールドに値を設定する(FieldInfo.SetValue) - Programming/.NET Framework/Tips - 総武ソフトウェア推進所](http://smdn.jp/programming/netfx/tips/set_struct_field_using_reflection/)
6
+
7
+
8
+
9
+ ■追記:サンプルコード
10
+
11
+ ```VB
12
+
13
+ Imports System
14
+
15
+ Imports System.Reflection
16
+
17
+
18
+
19
+ Public Class Test
20
+
21
+ Public Shared Sub Main()
22
+
23
+ Dim s As new MES_DATA_STRUCTURE
24
+
25
+ Dim v As ValueType = s
26
+
27
+ Dim fieldInfo() As FieldInfo = s.GetType().GetFields( _
28
+
29
+ BindingFlags.Instance Or BindingFlags.Public)
30
+
31
+ For Each f As FieldInfo In fieldInfo
32
+
33
+ f.SetValue(v, -999)
34
+
35
+ Next f
36
+
37
+ Console.WriteLine(s.Tc) ' 初期化されて「-999」が出力される
38
+
39
+ End Sub
40
+
41
+ End Class
42
+
43
+
44
+
45
+ Structure MES_DATA_STRUCTURE
46
+
47
+ Public Tc As Double
48
+
49
+ Public Vp As Double
50
+
51
+ Public Vc As Double
52
+
53
+ Public Id As Double
54
+
55
+ End Structure
56
+
57
+ ```
58
+
59
+