Ba từ khóa xuất hiện trong signature Main method - điểm vào chương trình C#.
Phân tích từng từ khóa
public - Access Modifier
- Cho phép truy cập từ bất kỳ assembly/code nào
Mainphải public để runtime có thể gọi- Các mức khác:
private,internal,protected,protected internal,private protected
static - Static Member
- Thuộc về type (class), không phải instance
- Gọi qua tên class:
ClassName.Method() - Không có
thisreference - Chia sẻ state giữa tất cả instance
Mainphải static vì chưa có instance nào khi chương trình bắt đầu
void - Return Type
- Phương thức không trả về giá trị
- Khác với
int Main()(trả về exit code) - Dùng cho phương thức thực hiện hành động (side effect)
Signature Main chuẩn
// Các dạng hợp lệ static void Main() // Không tham số static void Main(string[] args) // Có tham số dòng lệnh static int Main() // Trả về exit code static int Main(string[] args) // Full signature static Task Main() // Async Main (.NET Core 7.1+) static Task<int> Main(string[] args) // Async + exit code
Ví dụ
using System;
public class Demo
{
// public static void Main(string[] args)
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
// public: runtime gọi được
// static: không cần new Demo()
// void: không trả về giá trị
}
}
Tóm tắt: public = ai cũng gọi được; static = không cần object; void = không return value.