Câu hỏi phỏng vấn C#
Câu hỏi

Sự khác nhau giữa static method, static constructor với methodconstructor thông thường trong C# là gì?

Câu trả lời

Trong C#, static method, static constructor và method và constructor thông thường có những đặc điểm và mục đích sử dụng khác nhau:

static Method

  • Định nghĩa: static method là một phương thức thuộc về lớp chứ không thuộc về bất kỳ instance nào của lớp đó. Bạn có thể gọi một static method mà không cần tạo instance của lớp.
  • Sử dụng: static method thường được sử dụng cho các utility function hoặc khi một phương thức không cần truy cập đến các trường dữ liệu instance của lớp.
  • Ví dụ: Math.Sqrt(double a) là một ví dụ về static method trong .NET Framework.

static Constructor

  • Định nghĩa: static constructor là một constructor đặc biệt được sử dụng để khởi tạo các trường static của lớp. static constructor được gọi tự động một lần duy nhất trước khi bất kỳ instance nào của lớp được tạo hoặc bất kỳ static members nào được truy cập.
  • Sử dụng: static constructor thường được sử dụng để khởi tạo các trường static hoặc thực hiện bất kỳ thiết lập nào cần thiết trước khi lớp được sử dụng.
  • Ví dụ:
csharp Copy
class MyClass
{
    static MyClass()
    {
        // Khởi tạo trường static ở đây
    }
}

Method và Constructor Thông Thường

  • Method thông thường: Là các phương thức thuộc về instance của lớp và thường tương tác với dữ liệu của instance đó. Chúng chỉ có thể được gọi thông qua một instance của lớp.

  • Constructor thông thường: Là phương thức đặc biệt được sử dụng để khởi tạo một instance mới của lớp. Constructor có thể nhận tham số và thường được sử dụng để thiết lập trạng thái ban đầu của đối tượng.

Sự Khác Biệt Chính

  • Phạm vi sử dụng: static method và static constructor thuộc về lớp và không cần một instance để gọi hoặc khởi tạo. Method và constructor thông thường thuộc về instance của lớp và cần một instance để thực hiện.
  • Khởi tạo và gọi: static constructor được gọi tự động một lần duy nhất khi lớp được sử dụng lần đầu tiên, trong khi constructor thông thường được gọi mỗi khi một instance mới của lớp được tạo.
  • Truy cập dữ liệu: static method không thể truy cập trực tiếp đến các trường dữ liệu instance của lớp (trừ khi được truyền vào như một tham số), trong khi method thông thường có thể truy cập trực tiếp đến dữ liệu instance.

Sự lựa chọn giữa việc sử dụng static hoặc instance method và constructor phụ thuộc vào yêu cầu cụ thể của ứng dụng và cách bạn muốn quản lý dữ liệu và trạng thái trong lớp của mình.

middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Operator overloading có được hỗ trợ trong C# không?

middle

Bạn có thể thêm các phương thức mở rộng vào một lớp static trong C# đã có không?

middle

Sự khác biệt giữa stringStringBuilder trong C# là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào