Гіфка обкладинки статті
У цьому розділі ми введемо багато нових понять. Метою цього є не для того, щоб ви все запам'ятали, а для того, щоб познайомити вас з ідеями. Кожне поняття буде розглянуте детальніше в подальших частинах, тому якщо щось здається надто заплутаним, не хвилюйтеся.
Є три рівні знань:
1. Те, що ви знаєте, що знаєте.
2. Те, що ви знаєте, що не знаєте.
3. Те, що ви не знаєте, що не знаєте.
Метою цього розділу є перевести знання з третього рівня на другий. Тому не переживайте занадто, якщо ви не зрозуміли все відразу. Суть полягає в тому, щоб просто познайомити вас з концепціями, і ми будемо їх охоплювати пізніше.
Обов'язково перевірте попередні статті та всі майбутні статті
Мети уроку
У цьому уроці ми зробимо наступне:
- Розберемо загальну ієрархію програмного файлу.
- Познайомимося з різними високорівневими темами для подальшого обговорення.
Нові поняття, які будуть введені
- Простори імен
- Класи
- Методи
- Конфлікти імен
- Використовувані оператори
Що це таке?
Будь ласка, будьте м'якими до себе. Це буде як пити з пожежного шланга, скільки нової інформації вам потрібно буде освоїти. Просто знайте, що ми завжди можемо повернутися до пояснень, і будемо поступово будувати всі ці теми, коли просуватимемося.
Отже, давайте знову подивимося на цю програму і побачимо, чи можемо ми зрозуміти, що ми насправді дивимося.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OurFirstProject
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Console.ReadLine();
}
}
}
Зображення попереднього коду, який ми написали.
Перед тим, як почати з окремих частин, я хочу, щоб ми подивилися на загальну структуру цього файлу.
Ми бачимо, що починають формуватися деякі групи, навіть якщо ми ще не знаємо, що це. Ми можемо побачити групу між рядками 1 і 5. На даному етапі ми назвемо її групою використання просто для того, щоб дати ім'я тому, що ми бачимо.
Червоний коло навколо рядків з 1 по 5
Ви також можете помітити багато того, що називається порожнім простором. Порожній простір — це термін для всіх пробілів між рядками. Додавання порожнього простору може означати натискання клавіші Enter між рядками. Порожній простір і відступи не впливають на те, як C# компілюється комп'ютером. Використання порожнього простору в C# допомагає нам швидко побачити групи.
*Деякі мови програмування, такі як Python, вимагають дуже конкретних відступів. Пам'ятайте, що C# — це компільована мова, тому комп'ютер фактично читає машинний код замість нашого конкретного C# коду.
Групи, які впливають на те, як C# виконується, — це початкові та кінцеві дужки. Вони виглядають як {
і }
відповідно. На моїй клавіатурі я можу їх написати, натискаючи клавішу праворуч від клавіші "P" і тримаючи клавішу Shift.
Якщо ми знову подивимося на код, ми побачимо ці групи біля дужок. І ви також побачите, як ці групи вкладені одна в одну.
Гіфка, що обводить вкладені групи колами.
Ці групи досить важливі і унікальні. Тому ми пояснимо теорію кожної групи технічними термінами і потім, як вони працюють разом, щоб наша програма виконувала задачі.
Внутрішня група (Методи)
Найвнутрішніша група, яка представляє метод C#
Давайте почнемо з найглибшої групи. Це називається метод.
A Method is a group of executable code that is attached to an object. In a much simpler term, it’s a representation of any action that you would do in your normal day. Waking up, getting dressed, brushing your teeth, taking a shower, etc. are all examples of what a method would be if you were being controlled by C#.
A method can also be referred to as a function. A function and method are the same thing, except a method is always associated with an object. In C# every function is associated with an object so the most correct term is “method” but the terms are casually used interchangeably.
Takeaway:
These groupings are called methods and are for telling the computer to do things.
Examples Used:
Actions like waking up, getting dressed, brushing teeth, and taking a shower.
The Middle Group
The middle group, depicting a class
This middle group is called a Class. A class is an object.
Okay maybe we need a little more to that explanation. What is an Object?
C# is an object oriented programming language, or OOP. That means that the entire language is based around this idea of object. So the technical definition of an object is a block of memory that has been allocated and configured based on how we define it. We are defining the object here by creating a class. Remember, everything in the end is just binary. It is just bits being held in RAM, random access memory.
Taking a step back from the very technical description and back to the previous example of you getting up in the morning. In the previous example we said methods were things like waking up, getting dressed, etc. In that example you are the class.
You the person are the class. And nested in you are the directions for the methods “WakeUp()”, “GettingDressed()”, etc. So classes are a grouping of methods and values.
Takeaway:
This group is called a class and inside classes you can find methods.
Example used:
You are a class and the methods inside you control how you do things.
The Outer Group
The outer most group, depicting a namespace
This group is called a Namespace. A Namespace is a collection of objects like the class that we just covered. If we follow the previous example of a class being a human, then a namespace is like a team of people.
Namespaces are a very important group for organization but more importantly for avoiding naming conflicts. A Naming Conflict is what it is called when two objects have the same name.
So if you and I were coding on the same project and we were creating classes for a pond. If we both create a class called “Duck” then the computer won’t know which class to use. That is what is called a naming conflict and it can be avoided by properly using namespaces. With correct namespaces we wouldn’t call “Duck”, but we would call “YourNamespace.Duck” and “MyNamespace.Duck.” This extension to the name through using namespace grouping becomes essential to avoid bugs.
Takeaway:
Namespaces are groups of classes and help avoid naming conflicts.
Example Used:
If a class is like a person, then a namespace is like a team of people.
Recap
Just the nested code but without circles
That was a ton of information, and we will cover each topic again in detail.
Але перед тим, як почати бігти, давайте підсумуємо те, що ми вже вивчили.
- Простори імен (Namespaces) — це групи об'єктів.
- Об'єкти — це блоки пам'яті, які виділяються в залежності від того, як їх налаштовують через класи.
- Класи — це об'єкти і групи методів та інших значень (ми розглянемо це в окремій статті).
- Методи — це групи дій, що прикріплені до об'єкта класу.
Пам'ятайте, ми лише вводимо ці теми. Я хочу, щоб ви перейшли з "Я ніколи не чув про це" до "Я чув про це, але поки не розумію".
Що ж це таке?
Оригінальний код, але з обведеними усіма using заявами
Ці рядки коду називаються Using Statements. Коли інші програмісти створюють класи та методи в своїх просторах імен, ви не можете використовувати їхні простори імен, якщо не скажете C#, що хочете їх використати. Using Statements дозволяють вам чітко сказати C#, що ви хочете використовувати простори імен, відмінні від того, з яким ви працюєте.
Але чому рядки з 2 по 5 світліші за звичайні? Це тому, що Visual Studio каже нам, що ми не використовуємо нічого з цих просторів імен, і ми можемо безпечно видалити ці рядки. Але що станеться, якщо ми видалимо перший рядок, using System;
?
Якщо ми видалимо ці затьмлені рядки, то нічого не станеться, оскільки наш код не залежав від них, але якщо ми видалимо перший рядок, ми отримаємо помилку компіляції.
Ми можемо побачити це в дії в GIF-ці нижче. Видалення рядків з 2 по 5 нічого не змінює, але видалення першого рядка дасть помилки. Це тому, що "Console" — це клас в просторі імен "System". Отже, коли ми видаляємо using statement, комп'ютер більше не знає, що означає "Console", тому що він не визначений.
графіка, що показує помилку компіляції після видалення необхідного using statement
Підсумок:
Using Statements використовуються для підключення зовнішніх просторів імен до вашого класу.
Якщо ви дійшли до кінця, похваліть себе. Я не очікую, що ви станете експертом або навіть початківцем у цих темах на даному етапі. Ця стаття була лише для того, щоб познайомити вас з темами, перш ніж ми почнемо глибше розбиратися з наступними темами.
У наступній статті ми зосередимося на змінних та типах даних. Тому зробіть перерву, дайте цій інформації вбереться, а потім переходьте до наступної.
Автор
Якщо ви хочете підтримати мене, щоб я міг продовжувати публікувати статті та відео, будь ласка, подумайте про ставання членом. Якщо ви хочете зробити пряме пожертвування, будь ласка, купіть мені каву Ko-Fi/MikeQ. Якщо у вас є питання, скарги або смішні жарти, не забудьте поділитися ними в коментарях.
Перекладено з: Learning C#: Breaking Down Our First Program