首页 > 解决方案 > 返回继承了某个类的新类

问题描述

我正在制作我的自定义 CharacterStatusfunctionManagement。有 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;
  }

我想像这样通过我的objectslug获得New CharacterStatusManagement。

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

这里有一个问题:我想获得继承 characterstatusfunction 类的“新”类,但我找不到方法。我知道有一种方法可以使用序列化进行深度复制,但是因为我没有复制值,所以我认为这不合适。

 public static CharacterStatusFunction GetCharacterStatusFunctionByKey (string key) {
  if (_CharacterStatusFuncDic.ContainsKey (key)) {
     //This Line Help 
     return new typeof(_CharacterStatusFuncDic[key]);
    } 
}

标签: c#unity3dinheritance

解决方案


推荐阅读