TOC

This article is currently in the process of being translated into Vietnamese (~99% 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

Namespace ConsoleApp1 là namespace chính của chương trình, và những class mới, mặc định sẽ thuộc về namespace này. Tất nhiên bạn có thể thay đổi namespace này và tạo class với một namespace khác. Trong trường hợp đó, bạn cần phải import namespace mới đó vào để sử dụng trong chương trình, với cú pháp using ở trên, cũng như những namespace khác cũng được import như vậy.

Kế tiếp, khởi tạo class. C# là một ngôn ngữ lập trình Hướng Đối Tượng, mọi dòng code thực thi được nằm trong một class. Trong bài này, chúng ta tạo một class đơn giản, đặt tên là Program:

class Program

Chúng ta có thể tạo nhiều class, trong cùng 1 file. Nhưng trong ví dụ này, chỉ cần 1 class. Một class có thể chứa nhiều biến, thuộc tính và phương thức, 3 khái niệm này sẽ được giải thích kỹ hơn trong các chương sau. Bây giờ tất cả những gì bạn cần biết là class hiện tại chỉ có thể chứa 1 phương thức thôi. Nó được khai báo như sau:

static void Main(string[] args)

Dòng này có lẽ là dòng phức tạp nhất trong ví dụ này, chúng ta hãy xem từng phần một. Chữ đầu tiên là static. Từ khóa static nói cho chúng ta biết phương thức này có thể được truy xuất mà không cần khởi tạo class. Tôi sẽ giải thích rõ hơn về class ở những chương sau.

Từ khóa tiếp theo là void, nó nói cho chúng ta biết phương thức này nên trả về giá trị gì. Ví dụ, nó có thể là số, chuỗi ký tự, nhưng trong trường hợp này, chúng ta không muốn trả về giá trị gì cả (C# sử dụng từ khóa void để diễn tả như là không có gì).

Từ khoá tiếp theo là Main, nó chỉ đơn giản là tên của phương thức. Phương thức này chính là phương thức khởi chạy của chương trình, nghĩa là phần code được thực thi đầu tiên, và trong ví dụ trên thì nó là phần duy nhất được thực thi.

Tiếp theo, sau phần tên của phương thức, ta đến với tập hợp các tham số được đặt trong cặp ngoặc tròn. Trong ví dụ trên, phương thức của chúng ta chỉ có một tham số, gọi là arg. Kiểu dữ liệu của tham số là string (chuỗi), hoặc chính xác hơn là một mảng các chuỗi (ta sẽ tìm hiểu sau). Nếu bạn nghĩ vì sao nó lại là một mảng thì bởi vì ứng chụng Windows luôn có thể được gọi thực thi với một số lượng tuỳ ý các tham số. Các tham số này sẽ được truyền vào phương thức chính như là các chuỗi ký tự.

Xong rồi đó, bây giờ bạn đã có một số kiến thức cơ bản về chương trình C# đầu tiên, cũng như là các yêu cầu cần thiết để chương trình dòng lệnh (console) chạy được.