internal static IClonable Clone(this IClonable original)//דרך שניה - בונוס (יש להשתמש בממשק) { IClonable target = (IClonable)Activator.CreateInstance(original.GetType()); //... return(target); }
public void DoSpecialAbility(IArmy friendlyArmy, IArmy enemiesArmy) { List <IUnit> availableRange = friendlyArmy.FightStrategy.getSpecialAbilityTargets(friendlyArmy, enemiesArmy, this); if (availableRange.Count <= 0) { return; } List <IUnit> allies = new List <IUnit>(); foreach (var unit in availableRange) { if (friendlyArmy.Units.Contains(unit) && unit is IClonable) { allies.Add(unit); } } if (allies.Count > 0) { int cloneIndex = GameEngine.Instance.Random.Next(0, allies.Count); IClonable clonableUnit = allies[cloneIndex] as IClonable; IUnit clone = clonableUnit.Clone(); friendlyArmy.Units.Add(clone); GameLogger.Instance.Log( String.Format("[{0}] копирует [{1}] c параметрами [H:{2}, A:{3}, D:{4}]", this.ToString(), clone.ToString(), clone.Health, clone.Attack, clone.Defence), GameLogger.LOG_LEVEL__SPECIAL_ABILITY ); } }
internal static IClonable Clone(this IClonable original) { IClonable target = (IClonable)Activator.CreateInstance(original.GetType()); //... return(target); }
public static IClonable Clone(this IClonable obj) { IClonable newObj = (IClonable)Activator.CreateInstance(obj.GetType()); foreach (var field in obj.GetType().GetFields()) { field.SetValue(newObj, field.GetValue(obj)); } return(newObj); }
protected void guardarEstadoInstancia(IClonable <TInstancia> origen) { if ((origen as object) != null) { this.instancia = origen.Clonar(); } else { anularInstancia(); } }
public static void Main(string[] args) { Car car = new Car(); car.Make = "BMW"; Console.WriteLine(car.Make); car.Model = "Mini"; car.Year = "2017"; Console.WriteLine(car is int == false); Console.WriteLine(car is Cake == false); Console.WriteLine(car is Car == true); Console.WriteLine(car is IEquatable == true); Console.WriteLine(car is IClonable == true); Console.WriteLine(car is object == true); IClonable ic = car as IClonable; Console.WriteLine(ic != null); Console.WriteLine(ic.GetType().Name == "Car"); }
public static IClonable Clone(this IClonable original) { IClonable target = (IClonable)Activator.CreateInstance(original.GetType()); foreach (var Property in original.GetType().GetProperties()) { ParameterInfo[] myParameters = Property.GetIndexParameters(); if (myParameters.Length == 0) { Property.SetValue(target, Property.GetValue(original)); } /*else * { * foreach(var Parameter in myParameters) * { * Parameter. * } * }*/ } return(target); }
public IClonable Clone(IClonable source) { Card clone = new Card(source as Card); return(clone as IClonable); }
public EstadoControlador(EstadosEdicionFichero edoLst, EstadosEdicionInstancias edoElm, IClonable <TInstancia> origen) { this.estadoEdicionFichero = edoLst; this.estadoEdicionInstancia = edoElm; guardarEstadoInstancia(origen); }
static object ShowClone(IClonable clonable) { Console.WriteLine("CLONE OBJECT......."); return(clonable.Clone()); }