Anuncios

Bienvenidos sean a este post, hoy veremos un metodo para los Array.

Anuncios

Este metodo nos permite generar un envoltorio o wrapper de solo lectura para un array, es decir no convertira un array en solo lectura pero generara un envoltura sobre este, el cual debemos asignar a un objeto de coleccion de solo lectura, para entender el concepto primero veamos como es su sintaxis:

ReadOnlyCollection nombre_objeto = Array.AsReadOnly(array);
Anuncios

Las colecciones que podemos usar para solo lectura son las siguientes:

  • ICollection<T>
  • IEnumerable<T>
  • IList<T>
  • IReadOnlyCollection<T>
  • IReadOnlyTest<T>
  • ICollection
  • IEnumerable
  • IList
Anuncios

Observen que tenemos posibilidad de especificar el tipo de genero para la coleccion, esta en general debera coincidir con el array, el nombre del objeto sera el identificador que usaremos de ahora en adelante, despues por medio de la clase Array invocamos al metodo y como argumento le pasaremos el array a proteger, con todo esto comentado vamos a crear un ejemplo simple, para ello primero vamos a hacer un nuevo archivo con el nombre sololeer.cs y le agregaremos el siguiente codigo:

sololeer.cs

using System;
using System.Collections.Generic;

public class Program
{
	public static int Main()
	{
		string[] arreglo = {"tinchicus","enzo","marta","ariel"};
		IList<string> arr = Array.AsReadOnly(arreglo);
		for(int i=0; i < arr.Count; i++)
			Console.WriteLine(arr[i]);

		try
		{
			arr[0]="martin";
		}
		catch(NotSupportedException e)
		{
			Console.WriteLine(e.GetType());
			Console.WriteLine(e.Message);
		}
		return 0;
	}
}
Anuncios
Anuncios

Observen que implementaremos la libreria de las colecciones, despues en el Main primero definiremos un array con cuatro nombres, para luego definir un objeto de tipo IList con el tipo string y en este almacenaremos el resultado de aplicar el metodo sobre el array, observen que despues por medio de un bucle for pasaremos por la nueva coleccion creada y la mostraremos en pantalla, despues usaremos un try/catch, en este caso en el try modificaremos la primera posicion de la coleccion, en el catch pasaremos cual es la excepcion a esperar, dentro de este lo usaremos para mostrar el tipo de error y el mensaje en cuestion, con esto comentado podemos proceder a compilarlo y ejecutarlo para ver como es su salida:

C:\Users\tinchicus>sololeer.exe
tinchicus
enzo
marta
ariel
System.NotSupportedException
La colección es de solo lectura.

C:\Users\tinchicus>
Anuncios

Observen como al mostrar la coleccion se vio correctamente pero al intentar modificarlo nos devolvio la excepcion y si vemos el mensaje nos notifica de esto, no hace otra cosa pero tenganlo en cuenta cuando necesitemos proteger alguna informacion en nuestros codigos.

Anuncios

En resumen, hoy hemos visto a AsReadOnly, que es, para que sirve, como se utiliza, un ejemplo simple para verlo en accion, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50

Anuncio publicitario