Capitulos de este wiki
  1. 1 Crear una colección de elementos personalizada con C#

Crear una colección de elementos personalizada con C# - Crear una colección de elementos personalizada con C#

1 - Crear una colección de elementos personalizada con C#

[editar]
Tutorial creado por Patxi Echarte. Extraido de: http://www.eslomas.com/index.php/archives/2005/04/20/coleccion-elementos-personalizada-csharp/
27 de Abril de 2006
Esta clase dispone de un ArrayList interno accesible mediante InnerList que es el que se utiliza para almacenar la información, aunque podemos utilizar otro tipo de datos si lo necesitamos. Dispone también de una forma de acceder a la lista de elementos mediante otra propiedad de nombre List. Si utilizamos esta forma de acceso al ArrayList interno dispondremos de la ventaja de que List genera eventos cuando se añaden o eliminan datos y podremos crear métodos que realicen comprobaciones sobre estos datos.

A continuación se muestra un ejemplo de colección personalizada para almacenar un tipo externo de nombre FacturaLinea, perteneciente al namespace Eslomas.Ejemplos.

using Eslomas.Ejemplos;
public class FacturaLineaCollection : CollectionBase {

Para acceder a los elementos mediante []
public FacturaLinea this[int index]{get{return((FacturaLinea)List[index]);}set{List[index]=value;}}

public int Add(FacturaLinea value){
return( List.Add( value ) );
}

public int IndexOf(FacturaLinea value){
return( List.IndexOf( value ) );
}

public void Insert(int index, FacturaLinea value){
List.Insert( index, value );
}

public void Remove(FacturaLinea value){
List.Remove( value );
}

public bool Contains(FacturaLinea value){
return( List.Contains( value ) );
}


Utilizamos List para acceder a la colección interna, por lo que es necesario
que sobrecarguemos los siguientes métodos que se encargan de comprobar
los datos que llegan


protected override void OnInsert(int index, Object value){
if (value.GetType() != Type.GetType("Eslomas.Ejemplos.FacturaLinea"))
throw new ArgumentException("value must be of type FacturaLinea.", "value");
}

protected override void OnRemove( int index, Object value ) {
if ( value.GetType() != Type.GetType("Eslomas.Ejemplos.FacturaLinea") )
throw new ArgumentException( "value must be of type FacturaLinea.", "value" );
}

protected override void OnSet( int index, Object oldValue, Object newValue ) {
if ( newValue.GetType() != Type.GetType("EsLoMas.Ejemplos.FacturaLinea") )
throw new ArgumentException( "newValue must be of type FacturaLinea.", "newValue" );
}

protected override void OnValidate( Object value ) {
if ( value.GetType() != Type.GetType("Eslomas.Ejemplos.FacturaLinea") )
throw new ArgumentException( "value must be of type FacturaLinea." );
}
}
[editar]

Sé el primero en opinar


Tutoriales relacionados con 'Crear una colección de elementos personalizada con C#'

Es habitual al desarrollar una aplicación necesitar agrupar elementos en forma de colecciones. Para ello.... Más »
¿Qué es OpenOffice. Org? OpenOffice. Org es una suite ofimática de código fuente libre basada... Más »

Autor y licencia de 'Crear una colección de elementos personalizada con C#'

De forma general todos los contenidos de este web están sujetos a una licencia del tipo Creative Commons “Algunos derechos reservados”. Salvo que se diga lo contrario la única restricción impuesta si quieres utilizar algo de lo que aparece en este web, es la de indicar que el autor soy yo, Patxi Echarte.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.