回答編集履歴
1
インデント修正
answer
CHANGED
@@ -2,28 +2,30 @@
|
|
2
2
|
目的がいまいち伝わらないので的外れかもしれませんが...
|
3
3
|
```C#
|
4
4
|
public class FreeClass {
|
5
|
-
|
5
|
+
public string FreeProperty { get; set; }
|
6
|
-
|
6
|
+
}
|
7
7
|
|
8
|
-
|
8
|
+
public class FreeManagerClass {
|
9
9
|
|
10
|
-
|
10
|
+
private static Func<FreeClass, object> TargetProperty;
|
11
11
|
|
12
|
+
public static void FromPropertyMethod(
|
12
|
-
|
13
|
+
System.Linq.Expressions.Expression<Func<FreeClass, object>> expression) {
|
13
|
-
TargetProperty = expression.Compile();
|
14
|
-
}
|
15
14
|
|
16
|
-
// 値取得時には対象インスタンスを受け取って実行
|
17
|
-
public object GetValue(FreeClass instance) {
|
18
|
-
|
15
|
+
TargetProperty = expression.Compile();
|
19
|
-
|
16
|
+
}
|
20
|
-
}
|
21
17
|
|
18
|
+
// 値取得時には対象インスタンスを受け取って実行
|
22
|
-
|
19
|
+
public object GetValue(FreeClass instance) {
|
20
|
+
return TargetProperty.Invoke(instance);
|
21
|
+
}
|
22
|
+
}
|
23
23
|
|
24
|
-
|
24
|
+
public class UserClass {
|
25
|
-
FreeManagerClass.FromPropertyMethod(x => x.FreeProperty);
|
26
|
-
}
|
27
25
|
|
26
|
+
public void UseFromPropertyMethod() {
|
27
|
+
FreeManagerClass.FromPropertyMethod(x => x.FreeProperty);
|
28
|
-
|
28
|
+
}
|
29
|
+
|
30
|
+
}
|
29
31
|
```
|