public static T Create <T>() where T : DozeObject, new() { T obj = new T(); GlobalObjectsList.Add(obj); return(obj); }
public static T Create <T>(string tag = "") where T : DozeObject { var constructors = typeof(T).GetConstructors(); foreach (var construct in constructors) { var parameters = construct.GetParameters(); if (parameters.Length == 1) { if (parameters[0].Name.ToLower() == "tag") { T obj = (T)construct.Invoke(new object[] { tag }); if (obj != null) { GlobalObjectsList.Add(obj); return(obj); } } } } throw new InvalidOperationException($"{typeof(T).FullName} not contains constructor with tag!"); }