khi chúng tôi phải sử dụng nullable nhập vào C# .net? bất kỳ ai có thể vui lòng giải thích với ví dụ.Loại nullable trong C# là gì?
Trả lời
Loại dễ vỡ là khái niệm mới được giới thiệu trong C# 2.0 cho phép người dùng xác nhận giá trị null cho các kiểu dữ liệu nguyên thủy của ngôn ngữ C#. Quan trọng không phải ở đây là kiểu Nullable là kiểu cấu trúc.
blogpost: Nullable type -- Why we need Nullable types in programming language ?
Hơi không chính xác, tôi muốn nói 'Nullable
Vui lòng sửa ngữ pháp của bạn trên Blogspot trước khi liên kết nó với SO. Nếu không ai có thể hiểu được lời giải thích của bạn vì ngữ pháp kém, thì vấn đề là gì? – ragingasiancoder
từ: http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx loại Nullable là trường hợp của các struct System.Nullable. Một kiểu nullable có thể đại diện cho phạm vi giá trị bình thường cho kiểu giá trị cơ sở của nó, cộng với một giá trị null bổ sung. Ví dụ: một Nullable <Int32>, phát âm là "Nullable of Int32", có thể được chỉ định bất kỳ giá trị nào từ -2147483648 đến 2147483647 hoặc có thể gán giá trị null. Một Nullable <bool> có thể được gán các giá trị đúng hay sai, hoặc null
class NullableExample
{
static void Main()
{
int? num = null;
if (num.HasValue == true)
{
System.Console.WriteLine("num = " + num.Value);
}
else
{
System.Console.WriteLine("num = Null");
}
//y is set to zero
int y = num.GetValueOrDefault();
// num.Value throws an InvalidOperationException if num.HasValue is false
try
{
y = num.Value;
}
catch (System.InvalidOperationException e)
{
System.Console.WriteLine(e.Message);
}
}
}
loại Nullable (When to use nullable types) là kiểu giá trị có thể mất null như giá trị. Mặc định của nó là null
có nghĩa là bạn không gán giá trị cho nó. Ví dụ về các loại giá trị là int, float, double, DateTime, vv Những loại có những giá trị mặc định
int x = 0;
DateTime d = DateTime.MinValue;
float y = 0;
Đối với lựa chọn thay thế Nullable, các defualt của bất kỳ ở trên là null
int? x = null; //no value
DateTime? d = null; //no value
Điều này làm cho họ cư xử như kiểu tham chiếu đối tượng, chuỗi
string s = null;
object o = null;
Chúng rất hữu ích khi xử lý các giá trị từ cơ sở dữ liệu khi các giá trị được trả về từ bảng là NULL
. Hãy tưởng tượng một giá trị số nguyên trong bảng cơ sở dữ liệu của bạn có thể là NULL, như vậy chỉ có thể được biểu diễn bằng 0
nếu biến C# không phải là nullable - số nguyên thông thường.
Ngoài ra, hãy tưởng tượng cột EndDate
có giá trị không được xác định cho đến thời gian thực tế trong tương lai. Điều đó có thể được thiết lập để NULL trong DB nhưng bạn sẽ cần một loại nullable để lưu trữ rằng trong C#
DateTime StartDate = DateTime.Today;
DateTime EndDate? = null; //we don't know yet
Khi chúng ta phải sử dụng loại nullable trong C# .net?
Hãy tưởng tượng có một biến số nguyên id
đại diện cho một số id
cụ thể.
Bạn có thể lưu trữ 1
, 44
, hoặc bất cứ điều gì else.But gì xảy ra nếu bạn không biết id.You không thể chỉ lưu trữ -1
hoặc 0
.Bạn có thể nghĩ gán null
nhưng thường null
không thể được gán cho các kiểu giá trị .
int id=null;//error
Nullable type
cho phép bạn thực hiện việc này.
Giá trị các loại như int,double,char..
không có thể được biểu diễn dưới dạng giá trị NULL
.
Đại diện null
trong loại giá trị mà bạn phải sử dụng nullable type
..
Nó được ký hiệu là một loại giá trị tiếp theo ?
int? id=null;
được transalted để
Nullable<int> id=new Nullable<int>();
Giá trị mặc định giá trị của nó một loại nullable là null
.
Giả sử trong một ứng dụng mà bạn có yêu cầu chụp ngày sinh của khách hàng, đây không phải là trường bắt buộc. Bạn có thể khai báo thuộc tính DateOfBirth dưới dạng kiểu System.DateTime trong lớp Customer. Bởi vì DateTime là một kiểu giá trị, nó không thể chấp nhận các giá trị null, vì vậy nó sẽ có một số giá trị mặc định.
Vì vậy, khi khách hàng không điền giá trị rõ ràng trong điều khiển Ngày sinh, bạn sẽ cần thực hiện một số logic trước khi lưu nó trong DB để xem mặc định là NULL. Trong DB, bạn có thể lưu các trường NULL vào DateTime.
Để tránh các bước không mong muốn này để diễn giải các giá trị trong giao diện người dùng và trong lớp DA, bạn có thể sử dụng các loại có thể đọc được trong C#, điều này sẽ làm cho mã dễ đọc hơn.
Để đọc thêm thông tin về các loại không có giá trị, hãy tham khảo Nullable types in C# with an example.
- 1. Shorthand nếu loại nullable + (C#)
- 2. Trong C#, các `là gì? 'Trong các loại' DateTime? '
- 3. Constrain chung là một loại nullable
- 4. đúp không phải là một loại nullable
- 5. Các + = điều hành với các loại nullable trong C#
- 6. Loại WORD điểm trong C là gì?
- 7. Loại hỗn hợp trong C là gì?
- 8. `Nullable <T> là gì? '?
- 9. Kiểm tra nếu Loại dụ là một enum nullable trong C#
- 10. Trở loại chuỗi nullable
- 11. Nullable giá trị trong C + +
- 12. loại Complex của Nullable Values
- 13. Kích thước của một Nullable <Int32> là gì?
- 14. Loại dữ liệu 'ngắn' trong C là gì?
- 15. Loại "nửa" (nhị phân16) trong C# là gì?
- 16. Các loại toán tử trả về trong C++ là gì?
- 17. Loại chuỗi ký tự trong C++ là gì? Ví dụ:
- 18. loại danh sách khởi tạo trong mảng C++ là gì?
- 19. Nullable NaN so sánh đôi trong C#
- 20. 'loại tên' là gì
- 21. Cách mục tiêu-C của việc nhận một bool nullable là gì?
- 22. ? (nullable) nhà điều hành trong C#
- 23. Nullable Phương pháp luận cứ trong C#
- 24. GUID loại là gì?
- 25. loại Nullable: Cách tốt nhất để kiểm tra null hoặc không có trong C#
- 26. ** trong C++ là gì?
- 27. [] trong C# là gì?
- 28. gì là :: * trong C++
- 29. Nơi nào trong bộ nhớ là các loại nullable được lưu trữ?
- 30. '\ 0' trong C++ là gì?
http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx –
http://www.c-sharpcorner.com/UploadFile/PashuSX/NullableTypes04282006114548AM/NullableTypes. aspx –