30 - Clase parcial (partial class)


Ver video

Hasta ahora hemos visto que una clase se la implementa en forma completa dentro de un archivo. El lenguaje C# permite la implementación de una clase en dos o más archivos. Para esto hay que agregarle el modificador partial cuando declaramos la clase.

Este concepto es ámpliamente utilizado por el entorno del Visual Studio .Net en la generación de interfaces visuales.

Como veremos en conceptos futuros es necesario presentar "partial class" para su entendimiento.

Una clase parcial no es más ni menos que crear una clase completa y luego agrupar métodos y propiedades en dos o más archivos.

Problema 1:

Plantear una clase Rectangulo, definir dos propiedades: Lado1 y Lado2. Definir dos métodos RetornarSuperficie y RetornarPerimetro. Dividir la clase en dos archivos utilizando el concepto de "partial class".

Programa:

Archivo1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClaseParcial1
{
    partial class Rectangulo
    {
        private int lado1;
        public int Lado1
        {
            set
            {
                lado1 = value;
            }
            get
            {
                return lado1;
            }
        }
        private int lado2;
        public int Lado2
        {
            set
            {
                lado2 = value;
            }
            get
            {
                return lado2;
            }
        }
    }
}

Archivo2.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClaseParcial1
{
    partial class Rectangulo
    {
        public int RetornarSuperficie()
        {
            int sup = Lado1 * Lado2;
            return sup;
        }

        public int RetornarPerimetro()
        {
            int per = Lado1 * 2 + Lado2 * 2;
            return per;
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClaseParcial1
{
    class Program
    {
        static void Main(string[] args)
        {
            Rectangulo rectangulo1 = new Rectangulo();
            rectangulo1.Lado1 = 5;
            rectangulo1.Lado2 = 10;
            Console.WriteLine("La superficie del rectángulo es:" +
                                rectangulo1.RetornarSuperficie());
            Console.WriteLine("El perímetro del rectángulo es:" + 
                                rectangulo1.RetornarPerimetro());
            Console.ReadKey();
        }
    }
}

Para codificar este proyecto procedemos de la siguiente forma:

  1. Seleccionamos desde el menú de opciones Archivo -> Nuevo proyecto...
  2. En el diálogo definimos el nombre del proyecto: ClaseParcial1
  3. Ahora tenemos que agregar los otros archivos. Presionamos el botón derecho del mouse en la ventana del "Explorador de soluciones" sobre el nombre del proyecto ("ClaseParcial1") y seleccionamos la opción Agregar -> Nuevo elemento.
  4. Seleccionamos en el diálogo la plantilla "Clase" y en la parte inferior del diálogo definimos el nombre del archivo, en nuestro caso lo llamamos "archivo1.cs".
  5. En este archivo planteamos la clase "partial class Rectangulo" que define las dos propiedades y atributos.
  6. En forma similar seguimos los pasos para crear el archivo2.cs y codificar la clase "partial class Rectangulo" que define los dos métodos.
  7. Finalmente codificamos la clase principal en el archivo Program.cs
    En la main creamos un objeto de la clase Rectangulo e inicializamos las propiedades y llamamos a sus métodos.

Retornar