Hàm static trong class Program của chương trình C#

Xin chào tất cả mọi người!

Em có một thắc mắc về vấn đề hàm static trong C#.
Chuyện là vầy…
Trong class “Program” khi em tạo template C# console

public static void main(string[] args){
    HienThi();
}

Vấn đề em muốn khi hàm main thực thi sẽ gọi đến hàm HienThi()
nếu em viết hàm main như thế này

public static void main(string[] args){
    this.HienThi();
} 

và hàm HienThi() như thế này

public void HienThi(){
    Console.WriteLine("something");
}

thì chương trình sẽ báo lỗi ạ, và chương trình bắt buộc hàm HienThi() phải được định nghĩa với biến static.

public static void HienThi(){
    Console.WriteLine("something");
}

Mong các bạn và các anh chị giúp đỡ em giải thích ví dụ này giúp em với ạ, em còn mơ hồ về từ khóa static này lắm ạ! Em xin cảm ơn các bạn và các anh chị đã dành chút ít thời gian hỗ trợ em.

  1. Bạn nên sử dụng khái niệm “method - phương thức” thay cho khái niệm “function - hàm” trong lập trình OOP. Nó sẽ giúp bạn rất nhiều trong việc tự học

  2. static nghĩa là thuộc về class, chỉ có một, còn non-static nghĩa là thuộc về đối tượng

  3. this là một đối tượng xác định chính mình. Static method là của class nên không thể có this

3 Likes

Cám ơn bạn đã khai sáng cho mình!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?