TOC

This article is currently in the process of being translated into Vietnamese (~48% done).

Getting started:

Hello world explained

Ở chương trước, chúng ta đã thử in 1 text nho nhỏ ra màn hình trong chương trình C# đầu tiên. Vì mục đích trước hết là chạy được chương trình, nên chúng ta đã không đi sâu vào chi tiết những dòng code của chương trình có những gì, vì thế trong chương này sẽ là giải thích cho code mẫu của chương trước. Có lẽ bạn có thể thấy, 1 số dòng khá giống nhau, nên chúng ta sẽ nhóm chúng lại thành từng nhóm cho từng giải thích cụ thể. Đầu tiên là ký tự ngắn nhất là sử dụng thường xuyên nhất: { và }. Trong C#, chúng đánh dấu điểm bắt đầu và kết thúc của 1 khối code (về mặt logic). Cặp ngoặc nhọn được dùng rất nhiều trong các ngôn ngữ khác như C++, Java, JavaScript,... Như bạn có thể thấy, trong code mẫu HelloWorld cũng dùng 1 số cặp ngoặc nhọn để gom 1 số dòng code lại chung với nhau thành 1 khối, ở những ví dụ sau, cách sử dụng chúng sẽ được làm rõ hơn.

Bắt đầu với những dòng code đầu tiên:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using là 1 từ khóa, in đậm bằng màu xanh bởi editor. Từ khóa using khai báo 1 namespace, và namespace là 1 tập hợp của các lớp. Các lớp chứa các hàm chức năng khác nhau, và khi chúng ta làm việc với các IDE "hiện đại" như Visual Studio, nó sẽ tạo ra những đoạn code bổ sung cần thiết mà ta không cần quan tâm hay code lại. Trong trường hợp này, nó tạo ra 1 lớp cho chúng ta, và khai báo vào đó những namespaces được yêu cầu hoặc được sử dụng thường xuyên. Trong code mẫu, 5 namespace được khai báo, mỗi namespace chứa rất nhiều lớp con hữu dụng, ví dụ như chúng ta sẽ dùng lớp Console (cho lệnh WriteLine()), và nó được chứa trong namespace System.

Mặc khác, chúng ta chưa cần dùng đến namespace System.Linq trong code HelloWorld này, nên nếu là người cầu toàn, bạn có thể xóa dòng đó và code vẫn sẽ chạy bình thường.

Như bạn có thể thấy, chúng ta có thể khai báo namespace của riêng mình

namespace ConsoleApp1

The namespace ConsoleApp1 is now the main namespace for this application, and new classes will be a part of it by default. Obviously, you can change this, and create classes in another namespace. In that case, you will have to import this new namespace to use it in your application, with the using statement, like any other namespace.

Next, we define our class. Since C# is truly an Object Oriented language, every line of code that actually does something, is wrapped inside a class. In this case, the class is simply called Program:

class Program

We can have more classes, even in the same file. For now, we only need one class. A class can contain several variables, properties and methods, concepts we will go deeper into later on. For now, all you need to know is that our current class only contains one method and nothing else. It's declared like this:

static void Main(string[] args)

This line is probably the most complicated one in this example, so let's split it up a bit. The first word is static. The static keyword tells us that this method should be accesible without instantiating the class, but more about this in our chapter about classes.

The next keyword is void, and tells us what this method should return. For instance, it could be an integer or a string of text, but in this case, we don't want our method to return anything (C# uses the keyword void to express the concept of nothing).

The next word is Main, which is simply the name of our method. This method is the so-called entry-point of our application, that is, the first piece of code to be executed, and in our example, the only piece to be executed.

Now, after the name of a method, a set of arguments can be specified within a set of parentheses. In our example, our method takes only one argument, called args. The type of the argument is a string, or to be more precise, an array of strings, but more on that later. If you think about it, this makes perfect sense, since Windows applications can always be called with an optional set of arguments. These arguments will be passed as text strings to our main method.

And that's it. You should now have a basic understanding of our first C# application, as well as the basic principles of what makes a console application work.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!