回答編集履歴

3

内容修正 

2016/11/02 08:23

投稿

ishi9
ishi9

スコア1294

test CHANGED
@@ -4,29 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- [匿名型 (C# プログラミング ガイド)](https://msdn.microsoft.com/ja-jp/library/bb397696.aspx?f=255&MSPPError=-2147217396)
8
-
9
- 抜粋
10
-
11
- 「クエリ結果をメソッドの境界を越えて格納したり渡したりする必要がある場合、匿名型の代わりに、通常の名前の構造体またはクラスの使用を検討してください。」
12
-
13
-
14
-
15
- ただやっぱり公式で言われているとおり、匿名型が関数またぐのはあまりいい使い方とは言えません。
16
-
17
- 今は諦めて素直にクラスを作る方がいいでしょう。
18
-
19
-
20
-
21
- どうしてもやりたいならReflectionを使った拡張メソッドを作るのも手ですが・・・まぁ重たいでしょうね
22
-
23
- [引数で匿名型を受け取る](http://daruyanagi.jp/entry/2014/11/03/184149)
24
-
25
-
26
-
27
- 追記 ExpandoObjectを使う方法
7
+ 解決策 ExpandoObjectを使う
28
-
29
- これは結構やりたいことに近いのではないでしょうか?
30
8
 
31
9
 
32
10
 

2

追記 ExpandoObject

2016/11/02 08:23

投稿

ishi9
ishi9

スコア1294

test CHANGED
@@ -21,3 +21,57 @@
21
21
  どうしてもやりたいならReflectionを使った拡張メソッドを作るのも手ですが・・・まぁ重たいでしょうね
22
22
 
23
23
  [引数で匿名型を受け取る](http://daruyanagi.jp/entry/2014/11/03/184149)
24
+
25
+
26
+
27
+ 追記 ExpandoObjectを使う方法
28
+
29
+ これは結構やりたいことに近いのではないでしょうか?
30
+
31
+
32
+
33
+ ```C#
34
+
35
+ using System;
36
+
37
+ using System.Collections.Generic;
38
+
39
+ using System.Linq;
40
+
41
+ using System.Text;
42
+
43
+ using System.Threading.Tasks;
44
+
45
+ using System.Dynamic; // ExpandoObjectを使う場合はこれ必要
46
+
47
+
48
+
49
+ namespace ClassLibrary1
50
+
51
+ {
52
+
53
+ public class Class1
54
+
55
+ {
56
+
57
+ public dynamic GetDynamic()
58
+
59
+ {
60
+
61
+ dynamic tmp = new ExpandoObject();
62
+
63
+ tmp.id = 1;
64
+
65
+ tmp.name = "aaa";
66
+
67
+ return tmp;
68
+
69
+ }
70
+
71
+ }
72
+
73
+ }
74
+
75
+
76
+
77
+ ```

1

修正

2016/11/02 08:20

投稿

ishi9
ishi9

スコア1294

test CHANGED
@@ -12,7 +12,9 @@
12
12
 
13
13
 
14
14
 
15
- ただやっぱり公式で言われているとおり、匿名型関数またぐのはあまりいい使い方とは言えません。
15
+ ただやっぱり公式で言われているとおり、匿名型関数またぐのはあまりいい使い方とは言えません。
16
+
17
+ 今は諦めて素直にクラスを作る方がいいでしょう。
16
18
 
17
19
 
18
20