Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Constructores de Struct | Structs y Enumeradores
C# Más Allá de lo Básico

bookConstructores de Struct

Un constructor es un método que se ejecuta automáticamente cuando se crea un nuevo objeto.

La sintaxis de un constructor es algo similar a la de un método, simplemente se omite el returnType ya que un constructor no retorna ningún valor:

index.cs

index.cs

copy
1234567891011
struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }

Los siguientes puntos son importantes sobre la sintaxis del constructor:

  1. El nombre del constructor es el mismo que el nombre de la estructura;
  2. Un constructor no tiene ningún valor de retorno.

El siguiente programa demuestra cómo se llama al constructor cada vez que se crea un objeto:

index.cs

index.cs

copy
12345678910111213141516171819
using System; struct Player { public Player() { Console.WriteLine($"New Player Object Created"); } } class Program { static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }
Note
Nota

En caso de que esté utilizando una versión de C# anterior a C# 10, podría obtener un error en tiempo de compilación. Se recomienda utilizar C# 10 o una versión posterior. Si no desea cambiar a una versión más reciente, es importante tener en cuenta que el uso de constructores será más limitado. Por ejemplo, no puede crear un constructor sin parámetros en versiones anteriores.

Agregue un campo a Player llamado id, que será un identificador único de ese objeto, por lo que cada objeto tendrá un valor diferente para id. Comenzará desde 0 y se incrementará. Para lograr esto, debe crear una variable global llamada totalPlayers.

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728
using System; class ConsoleApp { // We use the term 'static' when declaring variables directly under class // This will be explained in much more detail in later sections. public static int totalPlayers = 0; // This time we create put the struct inside the `ConsoleApp` class // This is to be able to use the `totalPlayers` variable easily. struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

En el código anterior, se colocó la estructura dentro de la clase Program para poder acceder a la variable 'totalPlayers' desde el constructor.

Es posible pasar datos a un constructor al crear un nuevo objeto utilizando la siguiente sintaxis:

structureName variableName = new structureName(argument1, argument2, …);

A continuación, se muestra un ejemplo práctico de su uso:

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829
using System; struct Coordinate3D { public double x; public double y; public double z; public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } public void displayValue() { Console.WriteLine($"{this.x}, {this.y}, {this.z}"); } } class ConsoleApp { static void Main(string[] args) { Coordinate3D coord1 = new Coordinate3D(3, 5, 7); coord1.displayValue(); } }

Analicemos el código paso a paso.

Primero, se creó un constructor y dentro del constructor se asignaron los valores pasados x, y, z a los campos x, y y z:

index.cs

index.cs

copy
123456
public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; }

Dentro del método Main, se creó un nuevo objeto Coordinate3D y se pasaron 3, 5 y 7 como x, y y z a través del constructor.

index.cs

index.cs

copy
1
Coordinate3D coord1 = new Coordinate3D(3, 5, 7);

Para confirmar si los campos fueron correctamente inicializados por el constructor o no, se utilizó el método displayValue:

index.cs

index.cs

copy
1
coord1.displayValue();

La salida demostró que los campos se actualizaron correctamente.

Los constructores son muy útiles cuando se desea inicializar objetos con ciertos datos o realizar algunas operaciones iniciales al crear un objeto.

question mark

¿Cuándo se llaman los constructores?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 8

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain more about how constructors work in different programming languages?

What happens if I don't define a constructor in my structure or class?

Can you show an example of using multiple constructors with different parameters?

Awesome!

Completion rate improved to 2.04

bookConstructores de Struct

Desliza para mostrar el menú

Un constructor es un método que se ejecuta automáticamente cuando se crea un nuevo objeto.

La sintaxis de un constructor es algo similar a la de un método, simplemente se omite el returnType ya que un constructor no retorna ningún valor:

index.cs

index.cs

copy
1234567891011
struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }

Los siguientes puntos son importantes sobre la sintaxis del constructor:

  1. El nombre del constructor es el mismo que el nombre de la estructura;
  2. Un constructor no tiene ningún valor de retorno.

El siguiente programa demuestra cómo se llama al constructor cada vez que se crea un objeto:

index.cs

index.cs

copy
12345678910111213141516171819
using System; struct Player { public Player() { Console.WriteLine($"New Player Object Created"); } } class Program { static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }
Note
Nota

En caso de que esté utilizando una versión de C# anterior a C# 10, podría obtener un error en tiempo de compilación. Se recomienda utilizar C# 10 o una versión posterior. Si no desea cambiar a una versión más reciente, es importante tener en cuenta que el uso de constructores será más limitado. Por ejemplo, no puede crear un constructor sin parámetros en versiones anteriores.

Agregue un campo a Player llamado id, que será un identificador único de ese objeto, por lo que cada objeto tendrá un valor diferente para id. Comenzará desde 0 y se incrementará. Para lograr esto, debe crear una variable global llamada totalPlayers.

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728
using System; class ConsoleApp { // We use the term 'static' when declaring variables directly under class // This will be explained in much more detail in later sections. public static int totalPlayers = 0; // This time we create put the struct inside the `ConsoleApp` class // This is to be able to use the `totalPlayers` variable easily. struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

En el código anterior, se colocó la estructura dentro de la clase Program para poder acceder a la variable 'totalPlayers' desde el constructor.

Es posible pasar datos a un constructor al crear un nuevo objeto utilizando la siguiente sintaxis:

structureName variableName = new structureName(argument1, argument2, …);

A continuación, se muestra un ejemplo práctico de su uso:

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829
using System; struct Coordinate3D { public double x; public double y; public double z; public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } public void displayValue() { Console.WriteLine($"{this.x}, {this.y}, {this.z}"); } } class ConsoleApp { static void Main(string[] args) { Coordinate3D coord1 = new Coordinate3D(3, 5, 7); coord1.displayValue(); } }

Analicemos el código paso a paso.

Primero, se creó un constructor y dentro del constructor se asignaron los valores pasados x, y, z a los campos x, y y z:

index.cs

index.cs

copy
123456
public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; }

Dentro del método Main, se creó un nuevo objeto Coordinate3D y se pasaron 3, 5 y 7 como x, y y z a través del constructor.

index.cs

index.cs

copy
1
Coordinate3D coord1 = new Coordinate3D(3, 5, 7);

Para confirmar si los campos fueron correctamente inicializados por el constructor o no, se utilizó el método displayValue:

index.cs

index.cs

copy
1
coord1.displayValue();

La salida demostró que los campos se actualizaron correctamente.

Los constructores son muy útiles cuando se desea inicializar objetos con ciertos datos o realizar algunas operaciones iniciales al crear un objeto.

question mark

¿Cuándo se llaman los constructores?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 8
some-alt