Diferencia entre clase y estructura en C# – Part 1

Una clase es un proyecto o prototipo definido por el usuario a partir del cual se crean objetos. Básicamente, una clase combina los campos y métodos (función miembro que define acciones) en una sola unidad.

Ejemplo:

// C# program to illustrate the
// concept of class
using System;
  
// Class Declaration
public class Author {
  
    // Data members of class
    public string name;
    public string language;
    public int article_no;
    public int improv_no;
  
    // Method of class
    public void Details(string name, string language,
                        int article_no, int improv_no)
    {
        this.name = name;
        this.language = language;
        this.article_no = article_no;
        this.improv_no = improv_no;
  
        Console.WriteLine("The name of the author is :  " + name
                          + "\nThe name of language is : " + language
                          + "\nTotal number of article published  " 
                          + article_no + "\nTotal number of Improvements:"
                          +" done by author is : " + improv_no);
    }
  
    // Main Method
    public static void Main(String[] args)
    {
  
        // Creating object
        Author obj = new Author();
  
        // Calling method of class
        // using class object
        obj.Details("Ankita", "C#", 80, 50);
    }
}
Producción:

The name of the author is :  Ankita
The name of language is : C#
Total number of article published  80
Total number of Improvements: done by author is : 50

Una estructura es una colección de variables de diferentes tipos de datos bajo una sola unidad. Es casi similar a una clase porque ambos son tipos de datos definidos por el usuario y ambos contienen muchos tipos de datos diferentes.

Ejemplo:

// C# program to illustrate the
// concept of structure
using System;
  
// Defining structure
public struct Car
{
  
    // Declaring different data types
    public string Brand;
    public string Model;
    public string Color;
}
  
class GFG {
  
    // Main Method
    static void Main(string[] args)
    {
  
        // Declare c1 of type Car
        // no need to create an 
        // instance using 'new' keyword
        Car c1;
  
        // c1's data
        c1.Brand = "Bugatti";
        c1.Model = "Bugatti Veyron EB 16.4";
        c1.Color = "Gray";
  
        // Displaying the values
        Console.WriteLine("Name of brand: " + c1.Brand + 
                          "\nModel name: " + c1.Model + 
                          "\nColor of car: " + c1.Color);
    }
}
Producción:

Name of brand: Bugatti
Model name: Bugatti Veyron EB 16.4
Color of car: Gray

Diferencia entre clase y estructura

Clase Estructura
Las clases son de tipos de referencia. Las estructuras son de tipos de valor.
Todos los tipos de referencia se asignan en la memoria del montón. Todos los tipos de valores se asignan en la memoria de pila.
La asignación del tipo de referencia grande es más económica que la asignación del tipo de valor grande. La asignación y la desasignación son más baratas en el tipo de valor en comparación con el tipo de referencia.
La clase tiene características ilimitadas. Struct tiene características limitadas.
La clase se usa generalmente en programas grandes. Las estructuras se utilizan en programas pequeños.
Las clases pueden contener constructor o destructor. La estructura no contiene un constructor o destructor sin parámetros, pero puede contener un constructor parametrizado o un constructor estático.
Las clases usaron nueva palabra clave para crear instancias. Struct puede crear una instancia, con o sin nueva palabra clave.
Una clase puede heredar de otra clase. No se permite que una estructura herede de otra estructura o clase.
El miembro de datos de una clase se puede proteger. El miembro de datos de la estructura no se puede proteger.
La función miembro de la clase puede ser virtual o abstracta. El miembro de función de la estructura no puede ser virtual ni abstracto.
Dos variables de clase pueden contener la referencia del mismo objeto y cualquier operación sobre una variable puede afectar a otra variable. Cada variable en estructura contiene su propia copia de datos (excepto en la variable de parámetro ref y out) y cualquier operación en una variable no puede afectar a otra variable.

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *