問題点
ジェネリクスにクラス名をそのまま渡す以外の方法で実行したい
詳細
まずやりたい事の例は、下記のCreaterクラス内のcrateメソッドは他にあるフィールド参照用クラスを用いてファイル(ScriptableObject)を作成します。
現在は1つのクラスのみの書き出しに対応していますが、フィールド参照用クラスは複数作成される予定なので複数のクラスに対応したいです。
その為、ジェネリクスを用いてStarterクラスから全てのフィールド参照用クラス型をCreaterクラスに渡して実行したいのですがそもそも渡せない状態です。
尚、参照用クラスのファイル名は参照用クラスの為のディレクトリが決まっているのでそのディレクトリ内ファイル名を取得しループで渡すつもりでした。
これは仕様でそもそもこう言った事はできないのでしょうか?
C#
1public class Creater<T> 2{ 3 public void create(T t) 4 { 5 # 何か処理 6 } 7} 8 9 10public class Starter 11{ 12 # 下記の方法は全てエラーです 13 # 試した事1:オブジェクト名を文字列で入れる 14 string str= "Creater"; 15 Creater<str> creater01 = new Creater<str>(); 16 17 # 試した事2:オブジェクト名をからオブジェクトを生成して代入 18 Type type = Type.GetType("Creater"); 19 object obj = Activator.CreateInstance(type); 20 Creater<obj> creater02 = new Creater<obj>(); 21} 22 23
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/16 13:20
退会済みユーザー
2021/06/16 14:13 編集
2021/06/16 14:42
退会済みユーザー
2021/06/17 03:13 編集
2021/06/17 10:47
退会済みユーザー
2021/06/17 16:00 編集