Bienvenidos sean a este post, hoy veremos un metodo para los Array.
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);
Las colecciones que podemos usar para solo lectura son las siguientes:
- ICollection<T>
- IEnumerable<T>
- IList<T>
- IReadOnlyCollection<T>
- IReadOnlyTest<T>
- ICollection
- IEnumerable
- IList
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;
}
}
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>
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.
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.


Donación
Es para mantenimento del sitio, gracias!
$1.50
