예제 #1
0
 // Compara este objeto con atributos dinámicos con otro y dice si son iguales
 public bool Equals(ObjectWithDynamicAttributes o)
 {
     if (o == null)
     {
         return(false);
     }
     if (this == o)
     {
         return(true);
     }
     return(attributes.Equals(o.attributes));
 }
예제 #2
0
        /**
         * Crea y devuelve una copia de este objeto con atributos dinámicos.
         */
        public ObjectWithDynamicAttributes Copy()
        {
            ObjectWithDynamicAttributes copy = null;

            try {
                // Como no se puede crear un ejemplar de esta clase abstracta, con esta línea de código se crea un ejemplar de la clase CONCRETA que seamos en realidad
                copy = (ObjectWithDynamicAttributes)Activator.CreateInstance(GetType()); // getClass().newInstance()
                //copy.attributes.putAll(attributes);
                foreach (var attr in attributes)
                {
                    copy.attributes.Add(attr.Key, attr.Value);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex); // ex.printStackTrace(); aunque no me gusta la idea de mostrar cosas por consola directamente aquí
            }

            return(copy);
        }