Objetos de Classe
Um objeto de uma classe pode ser criado utilizando a seguinte sintaxe:
index.cs
1className variableName = new className();
É possível acessar o campo de uma classe utilizando o operador ponto (.
):
index.cs
1variableName.fieldName
Por exemplo:
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); } }
A expressão new Player();
é utilizada para criar um novo objeto, enquanto Player p1
é utilizada para criar uma variável para armazenar esse novo objeto. Portanto, ao escrever apenas Player p1;
, será criada apenas uma variável vazia, sem nenhum objeto dentro dela; por isso, é necessário criar um novo objeto e, em seguida, armazená-lo em uma variável: Player p1 = new Player();
.
Assim, ao criar um Array de tamanho 10
usando a classe Player
, não serão criados 10 objetos, mas sim um array vazio com capacidade para armazenar 10 objetos do tipo Player. Isso pode ser entendido pelo exemplo a seguir:
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); } }
O erro diz "Object reference not set to an instance of an object", o que significa que está sendo feita uma tentativa de acessar dados de um objeto que não existe – não há objeto para acessar no índice 0
.
Isso pode ser corrigido criando manualmente um objeto no í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); } }
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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 Classe
Deslize para mostrar o menu
Um objeto de uma classe pode ser criado utilizando a seguinte sintaxe:
index.cs
1className variableName = new className();
É possível acessar o campo de uma classe utilizando o operador ponto (.
):
index.cs
1variableName.fieldName
Por exemplo:
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); } }
A expressão new Player();
é utilizada para criar um novo objeto, enquanto Player p1
é utilizada para criar uma variável para armazenar esse novo objeto. Portanto, ao escrever apenas Player p1;
, será criada apenas uma variável vazia, sem nenhum objeto dentro dela; por isso, é necessário criar um novo objeto e, em seguida, armazená-lo em uma variável: Player p1 = new Player();
.
Assim, ao criar um Array de tamanho 10
usando a classe Player
, não serão criados 10 objetos, mas sim um array vazio com capacidade para armazenar 10 objetos do tipo Player. Isso pode ser entendido pelo exemplo a seguir:
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); } }
O erro diz "Object reference not set to an instance of an object", o que significa que está sendo feita uma tentativa de acessar dados de um objeto que não existe – não há objeto para acessar no índice 0
.
Isso pode ser corrigido criando manualmente um objeto no í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); } }
Obrigado pelo seu feedback!