Logo Studenta

programacion (2) - MIGUEL ANGEL JACOME CABAL

¡Estudia con miles de materiales!

Vista previa del material en texto

Matricula: 51621306-42
	
Nombre:
	
Miguel ángel Jácome cabal 
	
Nombre de la Profa.:
	
	
Materia:
	
Lenguajes de Programación V
	
Grupo: 
	
Sistemas 8
	
Tema:
	
Obtener acceso y Mostrar Datos
	
Fecha de entrega:
	
19-03-18
	
Calificación:
	
OBTENER ACCESO Y MOSTRAR DATOS
Todos los tipos y miembros de tipo tienen un nivel de accesibilidad que controla si se pueden usar desde otro código del ensamblado u otros ensamblados. Puede usar los siguientes modificadores de acceso para especificar la accesibilidad de un tipo o miembro cuando lo declare:
public
Puede obtener acceso al tipo o miembro cualquier otro código del mismo ensamblado o de otro ensamblado que haga referencia a éste.
private
Solamente el código de la misma clase o estructura puede acceder al tipo o miembro.
protected
Solamente el código de la misma clase, o de una clase derivada de esa clase, puede acceder al tipo o miembro.
internal
Puede obtener acceso al tipo o miembro cualquier código del mismo ensamblado, pero no de un ensamblado distinto.
protected internal Cualquier código del ensamblado en el que se ha declarado, o desde cualquier clase derivada de otro ensamblado, puede acceder al tipo o miembro.
private protected El código de la misma clase, o de un tipo derivado de esa clase, puede acceder al tipo o miembro solo dentro de su ensamblado que declara.
En los ejemplos siguientes se muestra cómo especificar modificadores de acceso en un tipo y miembro:
C#
Copiar
public class Bicycle
{
 public void Pedal() { }
No todos los tipos o miembros pueden usar todos los modificadores de acceso en todos los contextos; en algunos casos la accesibilidad de un miembro de tipo está restringida por la accesibilidad de su tipo contenedor. En las secciones siguientes se proporcionan más detalles sobre la accesibilidad.
Accesibilidad de clase y estructura
Las clases y estructuras que se declaran directamente en un espacio de nombres (es decir, que no están anidadas en otras clases o estructuras) pueden ser públicas o internas. Si no se especifica ningún modificador de acceso, el valor predeterminado es internal.
Los miembros de estructura, incluidas las clases y las estructuras anidadas, se pueden declarar como public, internal, o private. Los miembros de clase, incluidas las clases y las estructuras anidadas, pueden ser public, protected internal, protected, internal, private protected o private. El nivel de acceso de los miembros de clase y los miembros de estructura, incluidas las clases y estructuras anidadas, es private de forma predeterminada. Los tipos anidados privados no son accesibles desde fuera del tipo contenedor.
Las clases derivadas no pueden tener mayor accesibilidad que sus tipos base. En otras palabras, no puede tener una clase pública B que derive de una clase interna A. Si se permitiera, convertiría A en público, porque todos los miembros protegidos o internos de A son accesibles desde la clase derivada.
Puede habilitar otros ensamblados concretos para acceder a los tipos internos mediante InternalsVisibleToAttribute. 
Acceder a recursos
Para acceder a los recursos que ha incluido en el Manifiesto de su ensamblado, importe los espacios de nombres System.IO y System.Reflection del siguiente modo:
 using System.IO;
 using System.Reflection;
El espacio de nombres System.IO proporciona la definición de una secuencia y el espacio de nombres System.Reflection define la clase Assembly que proporciona los métodos para acceder a los recursos insertados en el ensamblado.
Cuando declara lo siguiente en el área de declaración general, se leen los recursos del ensamblado cuando se carga el formulario:
 Assembly _assembly;
 Stream _imageStream;
 StreamReader _textStreamReader;
NOTA: Para acceder al evento Load para el formulario en el editor de código, haga doble clic en el formulario del editor de diseño. 
Para leer el recurso del ensamblado que ejecuta el código actual, debe obtener una instancia de dicho ensamblado. Para ello, utilice el método GetExecutingAssembly del ensamblado del siguiente modo:
 _assembly = Assembly.GetExecutingAssembly();
La lectura de información desde el recurso a una secuencia se realiza con una llamada de método a GetManifestResourceStream. El parámetro que se envía a este método es el nombre del recurso al que quiere acceder. Cuando se ejecuta el evento Load del formulario, se leen los dos recursos a sus secuencias correspondientes.
 _imageStream = _assembly.GetManifestResourceStream("MyNameSpace.MyImage.bmp");
 _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNameSpace.MyTextFile.txt"));
El código en el evento Load para el formulario es similar al siguiente:
 try
 {
 _assembly = Assembly.GetExecutingAssembly();
 _imageStream = _assembly.GetManifestResourceStream("MyNamespace.MyImage.bmp");
 _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"));
 }
 catch
 {
 MessageBox.Show("Error accessing resources!");
 }
La instrucción Try-Catch, conocida como control de errores estructurado en .NET, se utiliza para detectar errores que puedan producirse mientras la instancia de la clase Assembly accede a los recursos.
Mostrar recursos
Este ejemplo utiliza dos botones para mostrar los recursos insertados. Cuando hace clic en el primer botón, se crea una imagen de mapa de bits basada en el recurso que se lee del ensamblado y se muestra en el control PictureBox del formulario. El segundo botón lee un recurso de texto y muestra el texto en un cuadro de texto.
Para mostrar los recursos insertados, siga estos pasos:
1. Agregue un control PictureBox al formulario.
2. Agregue un nuevo control de botón al formulario y cambie su propiedad Text a Show Image.
3. Haga doble clic en el botón para abrir su evento Click en el visor de código y pegue el código siguiente en este evento:
 try
 {
 pictureBox1.Image = new Bitmap(_imageStream); }
 catch 
 {
 MessageBox.Show("Error creating image!");
 }
Este código genera una nueva instancia de un mapa de bits basado en la secuencia de recursos que se leyó en el evento Load del formulario.
4. Agregue un control TextBox al formulario.
5. Agregue un nuevo control de botón al formulario y cambie su propiedad Text a Get Text.
6. Haga doble clic en el botón del editor de diseño para abrir Click_Event para el botón y pegue el código siguiente en el evento:
 try
 {
 if(_textStreamReader.Peek() != -1)
 {
 textBox1.Text = _textStreamReader.ReadLine();
 }
 }
 catch
 {
 MessageBox.Show("Error writing text!");
 }
Este código determina si los caracteres que se leerán todavía existen en la secuencia. Si se detectan los caracteres, se lee una línea al cuadro de texto.
7. Presione la tecla F5 para ejecutar la aplicación.

Continuar navegando