回答編集履歴

1

追記

2018/02/17 11:18

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -11,3 +11,31 @@
11
11
 
12
12
 
13
13
  因みに、このsはフィールドです。プロパティではありません。
14
+
15
+
16
+
17
+ ---
18
+
19
+ 【質問の追記への回答】
20
+
21
+ 見落としてました。getReverseTest<T>というジェネリクスだったのですね。
22
+
23
+ Tがメンバsを持っている旨指定しないとダメな筈ですが、そのような直接の指定はできません。
24
+
25
+ Tの条件は[where節で指定](http://ufcpp.net/study/csharp/sp2_generics.html#where)します。
26
+
27
+ whereにはインタフェースを指定できます。
28
+
29
+
30
+
31
+ そこで、s をプロパティとして持つインターフェースとして定義し、Testをそのインターフェースから派生します。その際、s をプロパティへ変更する必要があります。
32
+
33
+ その上で、getReverseTest<T>関数のwhere節で指定すれば良い筈です。
34
+
35
+
36
+
37
+ 結構手間がかかります。逆に、もしジェネリクスでなくても良いならば、下記で行けると思いますが、ダメだったらすいません。
38
+
39
+
40
+
41
+ > string getReverseTest(Stack<Test> tests){