Lớp test được cài đặt như bên dưới, câu lệnh nào sau đây hợp lệ:
Csharp
Sao chépChỉnh sửa
class test
{
public static int mark;
public static void print(){}
}
Trả lời:
Đáp án đúng: D
Câu hỏi này kiểm tra kiến thức về cách truy cập các thành viên `static` của một lớp trong C#. Trong C#, các thành viên `static` thuộc về chính lớp đó, chứ không phải là một thể hiện cụ thể của lớp. Do đó, chúng được truy cập thông qua tên lớp.
* **Phương án 1: `test t = new test(); t.mark = 9;`**
* Sai. Vì `mark` là một biến `static`, nó phải được truy cập thông qua tên lớp (`test.mark`), không phải thông qua một thể hiện của lớp (`t.mark`).
* **Phương án 2: `test.Print(9);`**
* Sai. Phương thức `Print()` không có tham số, nên việc truyền tham số `9` sẽ gây ra lỗi biên dịch.
* **Phương án 3: `test t = new test(); t.Print();`**
* Sai. Tương tự như phương án 1, `Print()` là một phương thức `static`, nó phải được truy cập thông qua tên lớp (`test.Print()`), không phải thông qua một thể hiện của lớp (`t.Print()`).
* **Phương án 4: `test.mark = 9;`**
* Đúng. Vì `mark` là một biến `static`, nó được truy cập trực tiếp thông qua tên lớp `test`.
Vậy, đáp án đúng là phương án 4.