Tôi mới trong C#. Trong C# tôi không thể thiết lập giá trị của một cấu trúc để null làm thế nào tôi có thể tạo một cấu trúc với hỗ trợ giá trị null?Làm thế nào để tạo cấu trúc với hỗ trợ giá trị null?
Trả lời
Struct và các loại giá trị có thể được thực hiện nullable bằng Generic Nullable <> lớp để quấn nó. Ví dụ:
Nullable<int> num1 = null;
C# cung cấp một tính năng ngôn ngữ cho điều này bằng cách thêm một dấu hỏi sau khi loại:
int? num1 = null;
Cùng nên làm việc cho bất kỳ loại giá trị bao gồm cấu trúc.
MSDN Giải thích: Nullable Types (c#)
bạn có thể sử dụng Nullable<T>
cho cấu trúc, hoặc các hình thức viết tắt của cùng (?):
Đại diện cho một đối tượng có tiềm ẩn type là một kiểu giá trị mà cũng có thể là giao rỗng như một loại tài liệu tham khảo .
struct Foo
{
}
Nullable<Foo> foo2 = null;
Foo? foo = null; //equivalent shorthand form
Bạn có thể sử dụng Nullable<T>
trong đó có một bí danh trong C#. Hãy nhớ rằng cấu trúc chính nó không thực sự là null (Trình biên dịch xử lý null khác nhau đằng sau hậu trường). Nó có nhiều hơn một số Option type.
Struct? value = null;
Vì @CodeInChaos đề cập đến Nullable<T>
chỉ được đóng hộp khi ở trạng thái không trống.
'Nullable
Kể từ khi "Struct" không phải là một loại tài liệu tham khảo, bạn không thể gán "null" như cách thông thường. vì vậy, bạn cần phải sử dụng biểu mẫu sau để làm cho biểu mẫu "có thể bị vô hiệu"
[Tên cấu trúc]? [Tên biến] = null
ví dụ:
Color? color = null;
sau đó bạn có thể gán giá trị rỗng cho đối tượng và cũng kiểm tra tính khả dụng bằng cách sử dụng câu lệnh có điều kiện.
- 1. gấu trúc MovingOLS không hỗ trợ các giá trị NA?
- 2. Làm thế nào để chèn một giá trị NULL
- 3. Làm thế nào để khởi tạo một cấu trúc với thành viên mảng linh hoạt
- 4. Làm thế nào để thay thế (null) giá trị với 0 đầu ra trong PIVOT
- 5. Giá trị @SuppressWarnings được hỗ trợ trong Android Studio
- 6. Tái cấu trúc thử nghiệm TDD để hỗ trợ đa luồng
- 7. Danh sách cấu trúc - giá trị của các mục struct luôn là null
- 8. Làm thế nào để cấu hình PlayFramework2 để hỗ trợ SSL?
- 9. Làm thế nào để "cuộn" a "đệ quy" cấu trúc
- 10. làm thế nào để tạo một mảng với các kiểu cấu trúc của tôi?
- 11. Làm thế nào để tạo mảng có cấu trúc từ tệp Tabdelimited với PHP?
- 12. Làm thế nào để tạo DataTable mới với cấu trúc cột từ DataTable khác?
- 13. Làm thế nào để đối phó với (có thể) giá trị null trong PreparedStatement?
- 14. Làm cho nút cấu hình hỗ trợ cả chuỗi và mảng trong cấu hình Symfony 2?
- 15. Sử dụng phản ánh, làm cách nào để bạn đặt giá trị của trường cấu trúc?
- 16. Plugin cho VS 2008 - Với cấu trúc nổi bật - Hỗ trợ cú pháp Delphi Prism
- 17. Làm thế nào để hỗ trợ ghci^p để tăng?
- 18. Tại sao C++ 11 không hỗ trợ cấu trúc ẩn danh, trong khi C11 làm gì?
- 19. Làm thế nào để lưu trữ một cấu trúc bên trong một cấu trúc trong đi?
- 20. Làm thế nào để cấu trúc một dự án Haskell?
- 21. Làm thế nào để hỗ trợ cả HTML4 và HTML5?
- 22. Làm thế nào để gán một cấu trúc C inline?
- 23. Làm thế nào để cấu trúc Subversion Repositories
- 24. Làm thế nào để thêm một mảng với các giá trị trong cấu hình Symfony2?
- 25. Làm thế nào để HOẶC giá trị null trong truy vấn Apache Solr?
- 26. C# struct, cách gán giá trị null?
- 27. Làm thế nào để generics thực hiện cấu trúc?
- 28. Làm thế nào để kiểm tra null trong Twig?
- 29. Oracle SQL - max() với giá trị NULL
- 30. Làm thế nào để tránh việc tuần tự hóa các giá trị null trong HashMap?
Bạn gần như chắc chắn không nên sử dụng cấu trúc ngay từ đầu. – SLaks
Có lý do thuyết phục nào không thể được định nghĩa là lớp học thay thế không? – juharr