private void AddModel <T>(out T instance) where T : CModelBase, new() { instance = new T(); models.Add(instance); //自动注册所有的消息监听函数 foreach (var method in typeof(T).GetMethods()) { if (method.Name.StartsWith("OnSc")) { //获取到泛型 var args = method.GetParameters()[1].ParameterType; List <Callback> calls; if (!msgRegister.TryGetValue(args, out calls)) { calls = new List <Callback>(); msgRegister.Add(args, calls); } calls.Add(new Callback(method, instance)); } } instance.Init(); if (instance.update != null && !updateList.Contains(instance.update)) { updateList.Add(instance.update); } }