Course Content
C# Beyond Basics
C# Beyond Basics
Class Objects
An object of a class can be created using the following syntax:
index
className variableName = new className();
We can access the field of a class using the dot (.
) operator:
index
variableName.fieldName
For-example:
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); } }
The expression new Player();
is used for creating a new object while Player p1
is used for creating a variable for storing that new object. So simply writing Player p1;
will only create an empty variable with no object inside it therefore we have to create a new object and, in turn, store it into a variable: Player p1 = new Player();
.
Therefore, if we create an Array of size 10
using the Player
class, it won't create 10 objects, rather, it will create an empty array with a capacity to store 10 Player objects. This can be understood by the following example:
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); } }
The error says "Object reference not set to an instance of an object" which simply means that we are trying to access data from an object that is not there - there is no object to access at the index 0
.
This can be fixed by manually creating an object at the 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); } }
Thanks for your feedback!