SlideShare uma empresa Scribd logo
1 de 34
Uso de variables de tipo
referencia
Notas generales
 Uso de variables de tipo referencia
 Uso de tipos referencia comunes
 La jerarquía de objetos
 Espacios de nombres en .NET Framework
 Práctica A - Definición y uso de variables de tipo
referencia
 Conversiones de datos
 Práctica B - Conversión de datos
 Uso de variables de tipo referencia
 Comparación de tipos valor y tipos referencia
 Declaración y liberación de variables referencia
 Referencias no válidas
 Comparación de valores y comparación de referencias
 Referencias múltiples a un mismo objeto
 Uso de referencias como parámetros de métodos
Comparación de tipos valor y tipos referencia
 Tipos valor
 La variable
contiene el valor
directamente
 Ejemplos:
char, int
42
int mol;
mol = 42;
•
string mol;
mol = “Hola";
Hola
 Tipos referencia
 La variable contiene una
referencia al dato
 El dato se almacena en un
área de memoria aparte
Declaración y liberación de variables referencia
 Declaración de variables referencia
coordenada c1;
c1 = new coordinate();
c1.x = 6.12;
c1.y = 4.2;
• 6.12 4.2
c1 = null;
• 6.12 4.2
 Liberación de variables referencia
Referencias no válidas
 Si hay referencias no válidas
 No es posible acceder a miembros o variables
 Referencias no válidas en tiempo de compilación
 El compilador detecta el uso de referencias no inicializadas
 Referencias no válidas en tiempo de ejecución
 El sistema generará un error de excepción
Comparación de valores y comparación de referencias
 Comparación de tipos valor
 == and != comparan valores
 Comparación de tipos referencia
 == and != comparan las referencias, no los valores
• 1.0 2.0
• 1.0 2.0
Diferente
Referencias múltiples a un mismo objeto
 Dos referencias pueden apuntar a un mismo objeto
 Dos formas de acceder a un mismo objeto para
lectura/escritura
coordinate c1= new coordinate ( );
coordinate c2;
c1.x = 2.3; c1.y = 7.6;
c2 = c1;
Console.WriteLine(c1.x + " , " + c1.y);
Console.WriteLine(c2.x + " , " + c2.y);
•
2.3 7.6
•
c1
c2
Uso de referencias como parámetros de métodos
 Las referencias se pueden usar como parámetros
 Si se pasan por valor, es posible cambiar el dato
referenciado
static void PassCoordinateByValue(coordinate c)
{
c.x++; c.y++;
}
loc.x = 2; loc.y = 3;
PassCoordinateByValue(loc);
Console.WriteLine(loc.x + " , " + loc.y);
2 3 3 4
•
•
 Uso de tipos referencia comunes
 Clase Exception
 Clase String
 Métodos, operadores y propiedades comunes de String
 Comparaciones de cadenas de caracteres
 Operadores de comparación en String
Clase Exception
 Exception es una clase
 Los objetos Exception se usan para lanzar excepciones
 Para crear un objeto Exception se usa new
 Para lanzar el objeto se usa throw
 Los tipos Exception son subclases de Exception
Clase String
 Cadenas de caracteres Unicode
 Abreviatura de System.String
 Inmutable
string s = "Hola";
s[0] = 'c'; // Error al compilar
Métodos, operadores y propiedades comunes de String
 Corchetes
 Método Insert
 Propiedad Length
 Método Copy
 Método Concat
 Método Trim
 Métodos ToUpper y ToLower
Comparaciones de cadenas de caracteres
 Método Equals
 Comparación de valores
 Método Compare
 Más comparaciones
 Opción para no distinguir mayúsculas y minúsculas
 Ordenación alfabética
 Opciones locales de Compare
Operadores de comparación en String
 Los operadores == y != están sobrecargados para cadenas
 Son equivalentes a String.Equals y !String.Equals
string a = "Test";
string b = "Test";
if (a == b) ... // Devuelve true
 La jerarquía de objetos
 El tipo object
 Métodos comunes
 Reflexión
El tipo object
 Sinónimo de System.Object
 Clase base para todas las demás clases
Exception
SystemException
MyClass
Object
String
Métodos comunes
 Métodos comunes para todos los tipos referencia
 Método ToString
 Método Equals
 Método GetType
 Método Finalize
Reflexión
 Es posible obtener información sobre el tipo de un objeto
 Espacio de nombres System.Reflection
 El operador typeof devuelve el tipo de un objeto
 Sólo para clases en tiempo de compilación
 Método GetType en System.Object
 Información sobre clases en tiempo de ejecución
 Espacios de nombres en .NET Framework
 Espacio de nombres System.IO
 Espacio de nombres System.Xml
 Espacio de nombres System.Data
 Otros espacios de nombres útiles
Espacio de nombres System.IO
 Acceso a entrada/salida del sistema de archivos
 File, Directory
 StreamReader, StreamWriter
 FileStream
 BinaryReader, BinaryWriter
Espacio de nombres System.Xml
 Compatibilidad con XML
 Estándares de XML
Espacio de nombres System.Data
 System.Data.SqlClient
 SQL Server .NET Data Provider
 System.Data
 Consta básicamente de las clases que constituyen la
arquitectura ADO.NET
Otros espacios de nombres útiles
 Espacio de nombres System
 Espacio de nombres System.Net
 Espacio de nombres System.Net.Sockets
 Espacio de nombres System.Windows.Forms
Práctica A - Definición y uso de variables de tipo referencia
 Conversiones de datos
 Conversión de tipos valor
 Conversiones padre/hija
 El operador is
 El operador as
 Conversiones y el tipo object
 Conversiones e interfaces
 Boxing y unboxing
Conversión de tipos valor
 Conversiones implícitas
 Conversiones explícitas
 Operador de cast
 Excepciones
 Clase System.Convert
 Control interno de conversiones
Conversiones padre/hija
 Conversión a referencia de clase padre
 Implícita o explícita
 Siempre tiene éxito
 Siempre se puede asignar a un objeto
 Conversión a referencia de clase hija
 Es necesario cast explícito
 Comprueba que la referencia es del tipo correcto
 Si no lo es, causa una excepción InvalidCastException
El operador is
 Devuelve true si es posible realizar una conversión
Pajaro b;
if (a is Pajaro)
b = (Pajaro) a; // No hay problema
else
Console.WriteLine("No es Pájaro");
El operador as
 Hace conversiones entre tipos referencia, como cast
 En caso de error
 Devuelve null
 No causa una excepción
Pajaro b = a as Pajaro; // Convertir
if (b == null)
Console.WriteLine("No es Pájaro”);
Conversiones y el tipo object
 El tipo object es la base para todas las clases
 Se puede asignar a object cualquier referencia
 Se puede asignar cualquier variable object a cualquier
referencia
 Con conversión de tipo y comprobaciones
 El tipo object y el operador is
object buey;
buey = a;
buey = (object) a;
buey = a as object;
b = (Pajaro) buey;
b = buey as Pajaro;
Conversiones e interfaces
 Una interfaz sólo se puede usar para acceder a sus
propios miembros
 No es posible acceder a otros miembros y variables de
la clase a través de la interfaz
Boxing y unboxing
 Sistema de tipos unificado
 Boxing
 Unboxing
 Llamadas a métodos de object en tipos valor
int p = 123;
object box;
box = p;
• 123
123 p = (int)box;
Práctica B - Conversión de Datos

Mais conteúdo relacionado

Mais procurados

Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ecSilvana Vargas
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadoresClara Patricia Avella Ibañez
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.K Manuel TN
 
Conceptos de programacion orientada a objetos
Conceptos de programacion orientada a objetosConceptos de programacion orientada a objetos
Conceptos de programacion orientada a objetosMarisol Henao
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetosBelenMonse
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 

Mais procurados (17)

Métodos POO
Métodos POOMétodos POO
Métodos POO
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ec
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
 
Conceptos de programacion orientada a objetos
Conceptos de programacion orientada a objetosConceptos de programacion orientada a objetos
Conceptos de programacion orientada a objetos
 
Tutorial objetos
Tutorial objetosTutorial objetos
Tutorial objetos
 
Presentacion3
Presentacion3Presentacion3
Presentacion3
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 

Destaque

10 los-instrumentos_publicos
10  los-instrumentos_publicos10  los-instrumentos_publicos
10 los-instrumentos_publicosMacyz Zegarra M
 
Documentos públicos y privados
Documentos públicos y privadosDocumentos públicos y privados
Documentos públicos y privadosManuel Bedoya D
 
Temario de notariado
Temario de notariadoTemario de notariado
Temario de notariadoimgs2309
 
Instrumentos Publicos Extraprotocolares
Instrumentos Publicos ExtraprotocolaresInstrumentos Publicos Extraprotocolares
Instrumentos Publicos ExtraprotocolaresJocelyn Robles Saravia
 
Niazoa.principiosprueba.slideshare.16
Niazoa.principiosprueba.slideshare.16Niazoa.principiosprueba.slideshare.16
Niazoa.principiosprueba.slideshare.16geronimo22
 
Ucc notreg notas de referencia
Ucc notreg notas de referenciaUcc notreg notas de referencia
Ucc notreg notas de referenciaAlvaro Mejia
 
Documentos Protocolares
Documentos ProtocolaresDocumentos Protocolares
Documentos ProtocolaresLetysMaria
 
La tacha (venezuela)
La tacha (venezuela)La tacha (venezuela)
La tacha (venezuela)RosanaM24
 
La Prueba de Inspección Judicial
La Prueba de Inspección JudicialLa Prueba de Inspección Judicial
La Prueba de Inspección JudicialPedro Figueroa
 
Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...
Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...
Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...irmapina97
 
Ejercicios de notarial y registral
Ejercicios  de notarial  y  registralEjercicios  de notarial  y  registral
Ejercicios de notarial y registralbebitolindo
 

Destaque (20)

10 los-instrumentos_publicos
10  los-instrumentos_publicos10  los-instrumentos_publicos
10 los-instrumentos_publicos
 
Documentos públicos y privados
Documentos públicos y privadosDocumentos públicos y privados
Documentos públicos y privados
 
Temario de notariado
Temario de notariadoTemario de notariado
Temario de notariado
 
Instrumento publico
Instrumento publicoInstrumento publico
Instrumento publico
 
Presentación1
Presentación1Presentación1
Presentación1
 
Instrumentos Publicos Extraprotocolares
Instrumentos Publicos ExtraprotocolaresInstrumentos Publicos Extraprotocolares
Instrumentos Publicos Extraprotocolares
 
ENSAYO REGISTRO PÚBLICO
ENSAYO REGISTRO PÚBLICOENSAYO REGISTRO PÚBLICO
ENSAYO REGISTRO PÚBLICO
 
Niazoa.principiosprueba.slideshare.16
Niazoa.principiosprueba.slideshare.16Niazoa.principiosprueba.slideshare.16
Niazoa.principiosprueba.slideshare.16
 
2numeros
2numeros2numeros
2numeros
 
Ucc notreg notas de referencia
Ucc notreg notas de referenciaUcc notreg notas de referencia
Ucc notreg notas de referencia
 
Prueba documental
Prueba documentalPrueba documental
Prueba documental
 
Documentos Protocolares
Documentos ProtocolaresDocumentos Protocolares
Documentos Protocolares
 
Probatorio confesión pdf
Probatorio confesión pdfProbatorio confesión pdf
Probatorio confesión pdf
 
La tacha (venezuela)
La tacha (venezuela)La tacha (venezuela)
La tacha (venezuela)
 
Knovio
KnovioKnovio
Knovio
 
La Prueba de Inspección Judicial
La Prueba de Inspección JudicialLa Prueba de Inspección Judicial
La Prueba de Inspección Judicial
 
Trabajo monografico de derecho notarial
Trabajo monografico de derecho notarialTrabajo monografico de derecho notarial
Trabajo monografico de derecho notarial
 
Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...
Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...
Prueba de Testigos. Procedimiento. Indicios. Presunciones. Experticia. Inspec...
 
La experticia
La experticiaLa experticia
La experticia
 
Ejercicios de notarial y registral
Ejercicios  de notarial  y  registralEjercicios  de notarial  y  registral
Ejercicios de notarial y registral
 

Mais de Esteban Soraire

Mais de Esteban Soraire (20)

Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.Net
 
Dce2 Introduccion Win Forms
Dce2 Introduccion Win FormsDce2 Introduccion Win Forms
Dce2 Introduccion Win Forms
 
7. Fundamentos De Oo
7.  Fundamentos De Oo7.  Fundamentos De Oo
7. Fundamentos De Oo
 
7. Fundamentos De Oo
7.  Fundamentos De Oo7.  Fundamentos De Oo
7. Fundamentos De Oo
 
8. Uso De Variables De Tipo Referencia
8.  Uso De Variables De Tipo Referencia8.  Uso De Variables De Tipo Referencia
8. Uso De Variables De Tipo Referencia
 
7. Fundamentos De Oo
7.  Fundamentos De Oo7.  Fundamentos De Oo
7. Fundamentos De Oo
 
5. Metodos Y Parametros
5.  Metodos Y Parametros5.  Metodos Y Parametros
5. Metodos Y Parametros
 
6. Tablas
6.  Tablas6.  Tablas
6. Tablas
 
3. Uso De Variables De Tipo Valor
3.  Uso De Variables De Tipo Valor3.  Uso De Variables De Tipo Valor
3. Uso De Variables De Tipo Valor
 
2. Introduccion A C#
2.  Introduccion A C#2.  Introduccion A C#
2. Introduccion A C#
 
1. Introduccion a .Net
1. Introduccion a .Net1. Introduccion a .Net
1. Introduccion a .Net
 
10. Herencia
10.  Herencia10.  Herencia
10. Herencia
 
8. Practica A
8.  Practica A8.  Practica A
8. Practica A
 
10. Herencia
10.  Herencia10.  Herencia
10. Herencia
 
8. Uso De Variables De Tipo Referencia
8.  Uso De Variables De Tipo Referencia8.  Uso De Variables De Tipo Referencia
8. Uso De Variables De Tipo Referencia
 
6. Practica A
6.  Practica A6.  Practica A
6. Practica A
 
5. Metodos Y Parametros
5.  Metodos Y Parametros5.  Metodos Y Parametros
5. Metodos Y Parametros
 
4. Practica A
4.  Practica A4.  Practica A
4. Practica A
 
3. Uso De Variables De Tipo Valor
3.  Uso De Variables De Tipo Valor3.  Uso De Variables De Tipo Valor
3. Uso De Variables De Tipo Valor
 
3. Practica A
3.  Practica A3.  Practica A
3. Practica A
 

8. Uso De Variables De Tipo Referencia

  • 1. Uso de variables de tipo referencia
  • 2. Notas generales  Uso de variables de tipo referencia  Uso de tipos referencia comunes  La jerarquía de objetos  Espacios de nombres en .NET Framework  Práctica A - Definición y uso de variables de tipo referencia  Conversiones de datos  Práctica B - Conversión de datos
  • 3.  Uso de variables de tipo referencia  Comparación de tipos valor y tipos referencia  Declaración y liberación de variables referencia  Referencias no válidas  Comparación de valores y comparación de referencias  Referencias múltiples a un mismo objeto  Uso de referencias como parámetros de métodos
  • 4. Comparación de tipos valor y tipos referencia  Tipos valor  La variable contiene el valor directamente  Ejemplos: char, int 42 int mol; mol = 42; • string mol; mol = “Hola"; Hola  Tipos referencia  La variable contiene una referencia al dato  El dato se almacena en un área de memoria aparte
  • 5. Declaración y liberación de variables referencia  Declaración de variables referencia coordenada c1; c1 = new coordinate(); c1.x = 6.12; c1.y = 4.2; • 6.12 4.2 c1 = null; • 6.12 4.2  Liberación de variables referencia
  • 6. Referencias no válidas  Si hay referencias no válidas  No es posible acceder a miembros o variables  Referencias no válidas en tiempo de compilación  El compilador detecta el uso de referencias no inicializadas  Referencias no válidas en tiempo de ejecución  El sistema generará un error de excepción
  • 7. Comparación de valores y comparación de referencias  Comparación de tipos valor  == and != comparan valores  Comparación de tipos referencia  == and != comparan las referencias, no los valores • 1.0 2.0 • 1.0 2.0 Diferente
  • 8. Referencias múltiples a un mismo objeto  Dos referencias pueden apuntar a un mismo objeto  Dos formas de acceder a un mismo objeto para lectura/escritura coordinate c1= new coordinate ( ); coordinate c2; c1.x = 2.3; c1.y = 7.6; c2 = c1; Console.WriteLine(c1.x + " , " + c1.y); Console.WriteLine(c2.x + " , " + c2.y); • 2.3 7.6 • c1 c2
  • 9. Uso de referencias como parámetros de métodos  Las referencias se pueden usar como parámetros  Si se pasan por valor, es posible cambiar el dato referenciado static void PassCoordinateByValue(coordinate c) { c.x++; c.y++; } loc.x = 2; loc.y = 3; PassCoordinateByValue(loc); Console.WriteLine(loc.x + " , " + loc.y); 2 3 3 4 • •
  • 10.  Uso de tipos referencia comunes  Clase Exception  Clase String  Métodos, operadores y propiedades comunes de String  Comparaciones de cadenas de caracteres  Operadores de comparación en String
  • 11. Clase Exception  Exception es una clase  Los objetos Exception se usan para lanzar excepciones  Para crear un objeto Exception se usa new  Para lanzar el objeto se usa throw  Los tipos Exception son subclases de Exception
  • 12. Clase String  Cadenas de caracteres Unicode  Abreviatura de System.String  Inmutable string s = "Hola"; s[0] = 'c'; // Error al compilar
  • 13. Métodos, operadores y propiedades comunes de String  Corchetes  Método Insert  Propiedad Length  Método Copy  Método Concat  Método Trim  Métodos ToUpper y ToLower
  • 14. Comparaciones de cadenas de caracteres  Método Equals  Comparación de valores  Método Compare  Más comparaciones  Opción para no distinguir mayúsculas y minúsculas  Ordenación alfabética  Opciones locales de Compare
  • 15. Operadores de comparación en String  Los operadores == y != están sobrecargados para cadenas  Son equivalentes a String.Equals y !String.Equals string a = "Test"; string b = "Test"; if (a == b) ... // Devuelve true
  • 16.  La jerarquía de objetos  El tipo object  Métodos comunes  Reflexión
  • 17. El tipo object  Sinónimo de System.Object  Clase base para todas las demás clases Exception SystemException MyClass Object String
  • 18. Métodos comunes  Métodos comunes para todos los tipos referencia  Método ToString  Método Equals  Método GetType  Método Finalize
  • 19. Reflexión  Es posible obtener información sobre el tipo de un objeto  Espacio de nombres System.Reflection  El operador typeof devuelve el tipo de un objeto  Sólo para clases en tiempo de compilación  Método GetType en System.Object  Información sobre clases en tiempo de ejecución
  • 20.  Espacios de nombres en .NET Framework  Espacio de nombres System.IO  Espacio de nombres System.Xml  Espacio de nombres System.Data  Otros espacios de nombres útiles
  • 21. Espacio de nombres System.IO  Acceso a entrada/salida del sistema de archivos  File, Directory  StreamReader, StreamWriter  FileStream  BinaryReader, BinaryWriter
  • 22. Espacio de nombres System.Xml  Compatibilidad con XML  Estándares de XML
  • 23. Espacio de nombres System.Data  System.Data.SqlClient  SQL Server .NET Data Provider  System.Data  Consta básicamente de las clases que constituyen la arquitectura ADO.NET
  • 24. Otros espacios de nombres útiles  Espacio de nombres System  Espacio de nombres System.Net  Espacio de nombres System.Net.Sockets  Espacio de nombres System.Windows.Forms
  • 25. Práctica A - Definición y uso de variables de tipo referencia
  • 26.  Conversiones de datos  Conversión de tipos valor  Conversiones padre/hija  El operador is  El operador as  Conversiones y el tipo object  Conversiones e interfaces  Boxing y unboxing
  • 27. Conversión de tipos valor  Conversiones implícitas  Conversiones explícitas  Operador de cast  Excepciones  Clase System.Convert  Control interno de conversiones
  • 28. Conversiones padre/hija  Conversión a referencia de clase padre  Implícita o explícita  Siempre tiene éxito  Siempre se puede asignar a un objeto  Conversión a referencia de clase hija  Es necesario cast explícito  Comprueba que la referencia es del tipo correcto  Si no lo es, causa una excepción InvalidCastException
  • 29. El operador is  Devuelve true si es posible realizar una conversión Pajaro b; if (a is Pajaro) b = (Pajaro) a; // No hay problema else Console.WriteLine("No es Pájaro");
  • 30. El operador as  Hace conversiones entre tipos referencia, como cast  En caso de error  Devuelve null  No causa una excepción Pajaro b = a as Pajaro; // Convertir if (b == null) Console.WriteLine("No es Pájaro”);
  • 31. Conversiones y el tipo object  El tipo object es la base para todas las clases  Se puede asignar a object cualquier referencia  Se puede asignar cualquier variable object a cualquier referencia  Con conversión de tipo y comprobaciones  El tipo object y el operador is object buey; buey = a; buey = (object) a; buey = a as object; b = (Pajaro) buey; b = buey as Pajaro;
  • 32. Conversiones e interfaces  Una interfaz sólo se puede usar para acceder a sus propios miembros  No es posible acceder a otros miembros y variables de la clase a través de la interfaz
  • 33. Boxing y unboxing  Sistema de tipos unificado  Boxing  Unboxing  Llamadas a métodos de object en tipos valor int p = 123; object box; box = p; • 123 123 p = (int)box;
  • 34. Práctica B - Conversión de Datos