Tabla de Contenido
0. Introducción1. La Clase object
1.1 Declaración de la clase Object
1.2 Listado de miembros de Object
1.2.1 Constructor Object
1.2.2 Equals
1.2.3 Equals(Object, Object)
1.2.4 Finalize
1.2.5 GetHashCode
1.2.6 GetType
1.2.7 MemberwiseClone
1.2.8 ReferenceEquals
1.2.9 ToString
2. Conclusiones
3. Glosario
4. Enlaces & Literatura
0. Introducción
En esta ocasión vamos a hacer una descripción
generalizada de los miembros de la clase Object. Considero que un
programador/desarrollador que desee conocer los pormenores de la jerarquía de
herencia de los tipos de objetos en el Framework .NET, empecerá por esta clase,
pues es la clase primaria de todas las demás: tanto las integradas como las
que crea el mismo programador. La descripción consistirá en declarar el
propósito del método, así mismo la utilidad que podemos extraer de su
conocimiento en la definición de nuestros propios tipos de datos.
1. La Clase Object
Object [2] ss la clase que soporta todos los demás clases en el Framework .NET (incluídos los subconjuntos de librerías desarrollados por terceros; lo que también se conoce como perfiles); por otro lado, también provee servicios de bajo nivel (veremos esto con más detalle más adelante).
Como enuncian en [2]:
This is the ultimate base class of all classes in the .NET Framework; it is the root of the type hierarchy.
1.1 Declaración de la clase Object
Esta es la definición sintáctica de object:
[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
public class Object
[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
public class Object
Describamos, con brevedad, los atributos (o decoradores) esta declaración:
- SerializableAttribute: Los objetos de esta clase puede ser representados en un flujo (serialización [3]) de bytes.
- ComVisibleAttribute(true): Visibilidad de los tipos dentro de un assembly desde un componente COM.
- ClassInterfaceAttribute(ClassInterfaceType.AutoDual): Soporte para compatibilidad hacia atrás.
1.2 Listado de miembros de object
Estos son todos los miembros de object:
Archivo Object.cs:
Ahora describamos cada uno de estos.
public Object()
Ejemplo:
Object obj = new Object();
public virtual bool Equals(Object obj)
Ejemplo:
obj1.Equals(obj2);
public static bool Equals(Object objA, Object objB)
Ejemplo:
Object.Equals(obj1, obj2);
1.2.1 Constructor Object
Inicializa una nueva instancia del tipo Object [4]:public Object()
Ejemplo:
Object obj = new Object();
1.2.2 Equals(Object)
Permite determinar si el objeto pasado como argumento es igual al actual [5].public virtual bool Equals(Object obj)
Ejemplo:
obj1.Equals(obj2);
1.2.3 Equals(Object, Object)
Permite determinar si dos instancias referencian al mismo objeto [6].public static bool Equals(Object objA, Object objB)
Ejemplo:
Object.Equals(obj1, obj2);
1.2.4 Finalize
Trata de liberar los recursos (e.g., memoria de trabajo) asignados a una instancia antes que el garbage collector lo marque como basura [8].
protected virtual void Finalize()
Ejemplo:
[Nota: cfr. Liberación de Recursos y Finalizadores en C#]
1.2.3 GetHashCode
Retorna la representación numérica (función hash code) del objeto actual [9].
public virtual int GetHashCode()
Ejemplo:
Console.WriteLine( obj1.GetHashCode() );
1.2.4 GetType
Obtiene una descripción en una instancia de Type del objeto actual.
public Type GetType()
Ejemplo:
[Nota: cfr. El Método GetType y el operador typeof.]
1.2.5 MemberwiseClone
Crea una copia del objeto actual.
protected Object MemberwiseClone()
Ejemplo:
obj2 = obj1.MemberwiseClone();
[Nota: Recomiendo ver el ejemplo extendido en [12].]
1.2.6 ReferenceEquals
Determina si dos instancias de la clase Object corresponden con una única instancia [13].
public static bool ReferenceEquals(Object objA, Object objB)
Ejemplo:
if (Object.ReferenceEquals(obj1, obj2))
1.2.7 ToString
Retorna la representación en cadena de caracteres del objeto actual (en su implementación genérica el nombre de clase completamente calificado).
public virtual string ToString()
Ejemplo:
[Nota: cfr. El Método ToString en C#.]
Conclusiones
Hemos realizado una descripción generalizada de los miembros (constructor, métodos (instancia y estáticos)) de la clase Object en el Microsoft .NET Framework. Más adelante tendremos la oportunidad de hacer una descripción detallada de cada uno de estos interesantes métodos (como ocurrió con ToString en: El Método ToString en C#) para comprender su naturaleza, aplicación, y utilidad en nuestros desarrollos y crear clases más robustas.
Glosario
- Clonar
- Instancia
- Garbage collector
- Nombre de clase completamente calificado
Enlaces & Literatura
[1]: C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.[2]: Object Class (System) - http://msdn.microsoft.com/en-us/library/system.object%28v=vs.110%29.aspx
[3]: Serialization (C# and Visual Basic) - http://msdn.microsoft.com/en-us/library/ms233843.aspx
[4]: Object Constructor (System) - http://msdn.microsoft.com/en-us/library/system.object.object(v=vs.110).aspx
[5]: Object.Equals Method (Object) (System) - http://msdn.microsoft.com/en-us/library/bsc2ak47(v=vs.110).aspx
[6]: Object.Equals Method (Object, Object) (System) - http://msdn.microsoft.com/en-us/library/w4hkze5k(v=vs.110).aspx
[7]: Liberación de Recursos y Finalizadores en C# | OrtizOL - Experiencias Construcción Software (xCSw) - http://ortizol.blogspot.com/2013/10/liberacion-de-recursos-y-finalizadores.html
[8]: Object.Finalize Method (System) - http://msdn.microsoft.com/en-us/library/system.object.finalize(v=vs.110).aspx
[9]: Object.GetHashCode Method (System) - http://msdn.microsoft.com/en-us/library/system.object.gethashcode(v=vs.110).aspx
[10]: El Método GetType y el Operador typeof en C# | OrtizOL - Experiencias Construcción Software (xCSw) - http://ortizol.blogspot.com/2014/04/el-metodo-gettype-y-el-operador-typeof.html
[11]: Object.GetType Method (System) - http://msdn.microsoft.com/en-us/library/system.object.gettype(v=vs.110).aspx
[12]: Object.MemberwiseClone Method (System) - http://msdn.microsoft.com/en-us/library/system.object.memberwiseclone(v=vs.110).aspx
[13]: Object.ReferenceEquals Method (System) - http://msdn.microsoft.com/en-us/library/system.object.referenceequals(v=vs.110).aspx
[14]: El Método ToString en C# | OrtizOL - Experiencias Construcción Software (xCSw) - http://ortizol.blogspot.com/2014/04/el-metodo-tostring-en-c.html
[15]: Object.ToString Method (System) - http://msdn.microsoft.com/en-us/library/system.object.tostring(v=vs.110).aspx
J
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.