Si no proporciona un constructor para el objeto, C# creará uno de forma predeterminada que crea instancias del objeto y establecer las variables miembro con los valores predeterminados indicados en: Tabla de valores predeterminados (Referencia de C#). Las clases y estructuras estáticas también pueden tener constructores.
Los destructores se utilizan para destruir instancias de clases.
- Los destructores no se pueden definir en estructuras. Sólo se utilizan con clases.
- Una clase sólo puede tener un destructor.
- Los destructores no se pueden heredar ni sobrecargar.
- No se puede llamar a los destructores. Se invocan automáticamente.
- Un destructor no permite modificadores de acceso ni tiene parámetros.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConstructoresDestructores
{
//En base a la lectira sobre el tema de Constrctores y Destructores en C#
//veremos el siguiente ejemplo
//Declaracion de la Clase CCuenta
class CCuenta
{
//Atributos
private string nombre;
private string cuenta;
private double saldo;
private double tipoDeInteres;
//Metodos contructor
public CCuenta() { }
public CCuenta(string nom, string cue, double sal, double tipo)
{
asignarNombre(nom);
asignarCuenta(cue);
ingreso(sal);
asignarTipoDeInteres(tipo);
}
//Metodo Destructor
~CCuenta()
{
// Desctructor
System.Console.WriteLine("Metodo destructor ejecutado...");
System.Console.ReadKey();
}
//Metodos
public void asignarNombre(string nom)
{
if (nom.Length == 0)
{
System.Console.WriteLine("Error: Cadena Vacia");
return;
}
nombre = nom;
}
public string obtenerNombre()
{
return nombre;
}
public void asignarCuenta(string cue)
{
if (cue.Length == 0)
{
System.Console.WriteLine("Error: Cuenta no valida");
return;
}
cuenta = cue;
}
public string obtenerCuenta()
{
return cuenta;
}
public double estado()
{
return saldo ;
}
public void ingreso(double cantidad)
{
if (cantidad < 0)
{
System.Console.WriteLine();
return;
}
saldo = saldo + cantidad;
}
public void reintegro(double candidad)
{
if (saldo - candidad < 0)
{
System.Console.WriteLine("Error: no disponible de saldo");
return;
}
saldo = saldo - candidad;
}
public void asignarTipoDeInteres(double tipo)
{
if (tipo < 0)
{
System.Console.WriteLine("Error: tipo no valido");
return;
}
tipoDeInteres = tipo;
}
public double ontenerTipoDeInteres()
{
return tipoDeInteres;
}
}
class Program
{
static void Main(string[] args)
{
// Instanciendo dos objetos cuenta01 y cuenta 02 con informacion en el constructor
CCuenta cuenta01 = new CCuenta();
CCuenta cuenta02 = new CCuenta("Un Nombre", "Una Cuenta", 6000, 3.5);
cuenta01.asignarNombre("Dos Nombre");
cuenta01.asignarCuenta("Dos Cuenta");
cuenta01.asignarTipoDeInteres(2.5);
cuenta01.ingreso(10000);
cuenta01.reintegro(5000);
System.Console.WriteLine(cuenta01.obtenerNombre());
System.Console.WriteLine(cuenta01.obtenerCuenta());
System.Console.WriteLine(cuenta01.estado());
System.Console.WriteLine(cuenta01.ontenerTipoDeInteres());
System.Console.WriteLine();
System.Console.WriteLine(cuenta02.obtenerNombre());
System.Console.WriteLine(cuenta02.obtenerCuenta());
System.Console.WriteLine(cuenta02.estado());
System.Console.WriteLine(cuenta02.ontenerTipoDeInteres());
System.Console.ReadKey();
}
}
}
No hay comentarios:
Publicar un comentario