Sự khác biệt giữa 'int?' và 'int' trong C #?


84

Tôi chắc chắn 90% rằng tôi đã thấy câu trả lời này trên stackoverflow trước đây, thực tế là tôi chưa bao giờ nhìn thấy "int?" cú pháp trước khi nhìn thấy nó ở đây, nhưng cho dù tôi tìm kiếm bằng cách nào, tôi không thể tìm thấy bài viết trước đó và nó khiến tôi phát điên.

Có thể là tôi đã vô tình ăn phải nấm buồn cười, nhưng nếu tôi không phải, ai đó có thể vui lòng chỉ ra bài viết trước nếu họ có thể tìm thấy nó hoặc giải thích lại nó không? Tìm kiếm stackoverflow của tôi dường như quá thấp ....

Câu trả lời:




24

int? là điều tương tự như Nullable. Nó cho phép bạn có giá trị "null" trong int của bạn.


7

int thuộc về System.ValueType và không thể có null làm giá trị. Khi xử lý cơ sở dữ liệu hoặc các kiểu khác mà các phần tử có thể có giá trị null, có thể hữu ích để kiểm tra xem phần tử có phải là null hay không. Đó là khi int? vào trong chơi. int? là kiểu nullable có thể có các giá trị từ -2147483648 đến 2147483648 và null.

Tham khảo: https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx


0

biểu tượng ? sau int có nghĩa là nó có thể là nullable.

Các ? biểu tượng thường được sử dụng trong các tình huống theo đó biến có thể chấp nhận giá trị null hoặc số nguyên hoặc cách khác, trả về số nguyên hoặc null.

Hy vọng bối cảnh sử dụng sẽ giúp. Bằng cách này, bạn không bị hạn chế chỉ xử lý các số nguyên.


0

bạn có thể sử dụng nó khi bạn mong đợi một giá trị null trong số nguyên của mình, đặc biệt khi bạn sử dụng CASTING ví dụ:

x= (int)y;

nếu y = null thì bạn sẽ gặp lỗi. bạn phải sử dụng:

x = (int?)y;

0

Int không thể chấp nhận null nhưng nếu nhà phát triển đang sử dụng int? sau đó bạn lưu trữ null trong int như int i = null; // không chấp nhận int? i = null; // hoạt động của nó chủ yếu sử dụng để phân trang trong MVC Pagelist


Điều này có vẻ giống như câu trả lời khác.
JJJ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.