Об'єкти Класу
Об'єкт класу можна створити за допомогою наступного синтаксису:
index.cs
1className variableName = new className();
Доступ до поля класу здійснюється за допомогою оператора крапки (.
):
index.cs
1variableName.fieldName
Наприклад:
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); } }
Вираз new Player();
використовується для створення нового об'єкта, тоді як Player p1
використовується для створення змінної для зберігання цього нового об'єкта. Отже, простий запис Player p1;
створить лише порожню змінну без об'єкта всередині, тому необхідно створити новий об'єкт і, відповідно, зберегти його у змінній: Player p1 = new Player();
.
Таким чином, якщо створити масив розміром 10
з використанням класу Player
, це не створить 10 об'єктів, а лише створить порожній масив із місткістю для зберігання 10 об'єктів Player. Це можна зрозуміти на наступному прикладі:
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); } }
Помилка повідомляє: "Object reference not set to an instance of an object", що означає, що ви намагаєтеся отримати доступ до даних об'єкта, якого не існує — об'єкт відсутній за індексом 0
.
Це можна виправити, створивши об'єкт вручну за індексом 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); } }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Об'єкти Класу
Свайпніть щоб показати меню
Об'єкт класу можна створити за допомогою наступного синтаксису:
index.cs
1className variableName = new className();
Доступ до поля класу здійснюється за допомогою оператора крапки (.
):
index.cs
1variableName.fieldName
Наприклад:
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); } }
Вираз new Player();
використовується для створення нового об'єкта, тоді як Player p1
використовується для створення змінної для зберігання цього нового об'єкта. Отже, простий запис Player p1;
створить лише порожню змінну без об'єкта всередині, тому необхідно створити новий об'єкт і, відповідно, зберегти його у змінній: Player p1 = new Player();
.
Таким чином, якщо створити масив розміром 10
з використанням класу Player
, це не створить 10 об'єктів, а лише створить порожній масив із місткістю для зберігання 10 об'єктів Player. Це можна зрозуміти на наступному прикладі:
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); } }
Помилка повідомляє: "Object reference not set to an instance of an object", що означає, що ви намагаєтеся отримати доступ до даних об'єкта, якого не існує — об'єкт відсутній за індексом 0
.
Це можна виправити, створивши об'єкт вручну за індексом 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); } }
Дякуємо за ваш відгук!