回答編集履歴

3

追記

2023/05/17 02:27

投稿

toorai
toorai

スコア16

test CHANGED
@@ -1,3 +1,24 @@
1
+ あまり良い方法ではないようですが、今回はZuishinさんのコメントを参考にリフレクションで対応しました。
2
+ 以下が修正した部分です。
3
+ ```C#
4
+ using System.Reflection;
5
+
6
+ ---
7
+
8
+ public static void Method<T>()
9
+ {
10
+ if (typeof(BaseClass).IsAssignableFrom(typeof(T)))
11
+ {
12
+ var mInfo = typeof(MethodClass).GetMethod("GenericMethod", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance);
13
+ var gmInfo = mInfo.MakeGenericMethod(typeof(T));
14
+ gmInfo.Invoke(null, new object[0] { });
15
+ }
16
+ }
17
+ ```
18
+
19
+ 以下過去コメント
20
+
21
+ ---
1
22
  一度自己解決としましたが、解決策に問題があったため再度回答受付中に変更しました。
2
23
  解決策とした方法では、GenericMethod内でTの型を利用できないため問題が生じました。
3
24
  以下は自己解決とした際の過去のコメントです。

2

追記

2023/05/16 10:06

投稿

toorai
toorai

スコア16

test CHANGED
@@ -1,5 +1,7 @@
1
1
  一度自己解決としましたが、解決策に問題があったため再度回答受付中に変更しました。
2
+ 解決策とした方法では、GenericMethod内でTの型を利用できないため問題が生じました。
2
3
  以下は自己解決とした際の過去のコメントです。
3
4
 
5
+ ---------------------------------------
4
6
  GenericMehoodに引数がないため、あえてジェネリック型にする意味がないことに気づきました。
5
7
  GenericMethod()としたうえで、IsSubclassOfによる判定によって呼ぶようにします。

1

追記

2023/05/16 10:01

投稿

toorai
toorai

スコア16

test CHANGED
@@ -1,2 +1,5 @@
1
+ 一度自己解決としましたが、解決策に問題があったため再度回答受付中に変更しました。
2
+ 以下は自己解決とした際の過去のコメントです。
3
+
1
4
  GenericMehoodに引数がないため、あえてジェネリック型にする意味がないことに気づきました。
2
5
  GenericMethod()としたうえで、IsSubclassOfによる判定によって呼ぶようにします。