?
chỉ là đường cú pháp, có nghĩa là trường này không có khả năng. Nó thực sự là viết tắt của Nullable<T>
.
Trong C# và Visual Basic, bạn đánh dấu loại giá trị là rỗng bằng cách sử dụng ? ký hiệu sau loại giá trị. Ví dụ, int? trong C# hoặc Số nguyên? trong Visual Basic tuyên bố một loại giá trị số nguyên có thể được gán null.
Bạn không thể gán null
để loại giá trị, int
là một loại giá trị không thể giữ null
giá trị, int?
mặt khác có thể lưu trữ giá trị null.
Tương tự là trường hợp với Color
, vì nó là một cấu trúc (như vậy, kiểu giá trị) và nó không thể giữ giá trị null, với Color?[,]
bạn đang làm cho một loạt các màu nullable.
Đối với câu hỏi của bạn:
Biến 'a' không được khởi tạo. Khi nào và ở đâu bạn sẽ sử dụng điều này?
Bằng cách sử dụng ?
với biến không làm cho nó khởi tạo với null
hoặc bất kỳ giá trị khác, nó vẫn là phải được khởi tạo.
int? a = null;
int b = null;//error since b is not nullable
Nếu bạn đang làm một số tính toán toán học dựa trên một đầu vào người sử dụng, bạn sẽ muốn làm chắc chắn rằng họ đã nhập một số để phương trình không sử dụng giá trị mặc định – Sayse
Bạn đã thêm thẻ 'nullable' như thế nào bên cạnh bạn không biết'? 'Có nghĩa là gì? –
Tôi luôn ngạc nhiên khi thấy, khi câu hỏi đơn giản, có rất nhiều câu trả lời trùng lặp. – Nolonar