Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Khác biệt public, static, void trong C#

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
  • Main phả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ó this reference
  • Chia sẻ state giữa tất cả instance
  • Main phả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.