Objetos de Clase
Un objeto de una clase puede crearse utilizando la siguiente sintaxis:
index.cs
1className variableName = new className();
Se puede acceder al campo de una clase utilizando el operador punto (.
):
index.cs
1variableName.fieldName
Por ejemplo:
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player p1= new Player(); p1.username = "Don"; Console.WriteLine(p1.username); } }
La expresión new Player();
se utiliza para crear un nuevo objeto, mientras que Player p1
se utiliza para crear una variable para almacenar ese nuevo objeto. Por lo tanto, simplemente escribir Player p1;
solo creará una variable vacía sin ningún objeto dentro; por ello, es necesario crear un nuevo objeto y, a su vez, almacenarlo en una variable: Player p1 = new Player();
.
Por lo tanto, si se crea un arreglo de tamaño 10
utilizando la clase Player
, no se crearán 10 objetos, sino que se creará un arreglo vacío con capacidad para almacenar 10 objetos Player. Esto se puede entender con el siguiente ejemplo:
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0].username = "Don"; // Error on this line Console.WriteLine(players[0].username); } }
El error indica "Object reference not set to an instance of an object", lo que simplemente significa que se está intentando acceder a datos de un objeto que no existe; no hay ningún objeto para acceder en el índice 0
.
Esto se puede solucionar creando manualmente un objeto en el índice 0
:
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0] = new Player(); players[0].username = "Don"; Console.WriteLine(players[0].username); } }
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain why creating an array of objects doesn't automatically create the objects themselves?
How do I initialize all elements in an array of objects?
What does "Object reference not set to an instance of an object" mean in simple terms?
Awesome!
Completion rate improved to 2.04
Objetos de Clase
Desliza para mostrar el menú
Un objeto de una clase puede crearse utilizando la siguiente sintaxis:
index.cs
1className variableName = new className();
Se puede acceder al campo de una clase utilizando el operador punto (.
):
index.cs
1variableName.fieldName
Por ejemplo:
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player p1= new Player(); p1.username = "Don"; Console.WriteLine(p1.username); } }
La expresión new Player();
se utiliza para crear un nuevo objeto, mientras que Player p1
se utiliza para crear una variable para almacenar ese nuevo objeto. Por lo tanto, simplemente escribir Player p1;
solo creará una variable vacía sin ningún objeto dentro; por ello, es necesario crear un nuevo objeto y, a su vez, almacenarlo en una variable: Player p1 = new Player();
.
Por lo tanto, si se crea un arreglo de tamaño 10
utilizando la clase Player
, no se crearán 10 objetos, sino que se creará un arreglo vacío con capacidad para almacenar 10 objetos Player. Esto se puede entender con el siguiente ejemplo:
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0].username = "Don"; // Error on this line Console.WriteLine(players[0].username); } }
El error indica "Object reference not set to an instance of an object", lo que simplemente significa que se está intentando acceder a datos de un objeto que no existe; no hay ningún objeto para acceder en el índice 0
.
Esto se puede solucionar creando manualmente un objeto en el índice 0
:
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0] = new Player(); players[0].username = "Don"; Console.WriteLine(players[0].username); } }
¡Gracias por tus comentarios!