Contenu du cours
C# au-delà des Bases
C# au-delà des Bases
Objets de Classe
Un objet d'une classe peut être créé en utilisant la syntaxe suivante :
index
className variableName = new className();
Nous pouvons accéder au champ d'une classe en utilisant l'opérateur point (.
) :
index
variableName.fieldName
Par exemple :
index
using 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); } }
L'expression new Player();
est utilisée pour créer un nouvel objet tandis que Player p1
est utilisée pour créer une variable pour stocker ce nouvel objet. Donc, écrire simplement Player p1;
ne créera qu'une variable vide sans objet à l'intérieur, c'est pourquoi nous devons créer un nouvel objet et, à son tour, le stocker dans une variable : Player p1 = new Player();
.
Par conséquent, si nous créons un tableau de taille 10
en utilisant la classe Player
, cela ne créera pas 10 objets, mais plutôt un tableau vide avec une capacité pour stocker 10 objets Player. Cela peut être compris par l'exemple suivant :
index
using 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); } }
L'erreur indique "Object reference not set to an instance of an object" ce qui signifie simplement que nous essayons d'accéder à des données d'un objet qui n'est pas là - il n'y a pas d'objet à accéder à l'index 0
.
Cela peut être corrigé en créant manuellement un objet à l'index 0
:
index
using 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); } }
Merci pour vos commentaires !