//true si una tempera esta en la paleta , lo que hago es recorrer el array de colores y preguntar por el == que definimos en tempera public static bool operator ==(Paleta p, Tempera t) { bool retorno = false; if ((!(object.Equals(t, null)))) { foreach (Tempera t2 in p._colores) { if ((!(object.Equals(t2, null)))) //valido que el array de temperas de paleta este completo y no tenga null { if (t2 == t) { retorno = true; break; } } } //Esta forma tambien funciona /* for(i=0;i<p._cantMaximaElementos;i++) * { * if(p._colores.GetValue(i)!=null) * { * if(p._colores[i]==t) * { * retorno = true; * break; * } * } * }*/ } return(retorno); }
// el operador + agrega color(temperas) a nuestra paleta //si a tempera esta en la PALETA , se acumulan las cantidades en el lugar de la tempera //ejemplo tengo el rojocon cantidad 5 y si traigo otra roja con 6 , se acumula y queda 11 //si no esta el color , a la primera vez que quiera ingresar algo , permite agreagr la tempera //en el primer lugar libre,como lo busco : //metodo privado de instancia obtener indice que retorna entero , lo que hace es recorrer el aray de colores //y retornar el Indice cuando encontro el primer null // y si esta toda ocupada agrego un valor como guia ejemplo -1 //devuelva el indice donde se aloja esa tempera , si no esta dentro del array devuelve negativo private int ObtenerIndice() //busca el primer espacio libre para poner una tempera { int retorno = -1; int i; for (i = 0; i < this._cantMaximaElementos; i++) { if (this._colores.GetValue(i) == null) { retorno = i; break; } } return(retorno); }
private int ObtenerIndice(Tempera t) //busca si la tempera que pasamos es igual a alguna que este en la paleta { int retorno = -1; int i; for (i = 0; i < this._cantMaximaElementos; i++) { if (this._colores.GetValue(i) != null) { if (this._colores[i] == t) { retorno = i; break; } } } return(retorno); }