Вернуть новый класс, который унаследовал некоторый класс - PullRequest
0 голосов
/ 23 мая 2019

Я делаю свое собственное управление характером персонажа.Есть CharacterStatusFunction и унаследованный класс, такой как Strength, Defend, Burn и др.

public class CharacterStatusFunction : IComparable<CharacterStatusFunction> {
      //Something
 }

 public class Strength : CharacterStatusFunction {
 }

Я загружаю все унаследованные классы в CharacterStatusfunctionManage

static Dictionary<string, CharacterStatusFunction> _CharacterStatusFuncDic = new Dictionary<string, CharacterStatusFunction> ();
 static List<string> _CharacterStatusFuncKeyLists = new List<string> ();

[RuntimeInitializeOnLoadMethod]
 public static void InItDictionary () {
  List<CharacterStatusFunction> ChrStatusFunctionLists = ReflectiveEnumerator.GetEnumerableOfType<CharacterStatusFunction> ().ToList ();
  for (int i = 0; i < ChrStatusFunctionLists.Count; i++) {
     _CharacterStatusFuncDic.Add (ChrStatusFunctionLists[i].ToString (), ChrStatusFunctionLists[i]);
  }
  Added = true;
  }

И я хочу получить New CharacterStatusManagement моимObjectSlug вот так.

public static CharacterStatusFunction GetCharacterStatusFunctionByKey (string key) {
 if(key == "Strength")
 return new Strength{}
 //something else
 }

Вот проблема: я хочу получить «новый» класс, который унаследовал класс functionstatusfunction, но я не могу найти способ.Я знаю, что есть способ глубокой копии с использованием сериализации, но поскольку я не копирую значения, я думаю, что это не подходит.

 public static CharacterStatusFunction GetCharacterStatusFunctionByKey (string key) {
  if (_CharacterStatusFuncDic.ContainsKey (key)) {
     //This Line Help 
     return new typeof(_CharacterStatusFuncDic[key]);
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...