2010-04-29 32 views
7

số nguyên nullable là gì và có thể sử dụng ở đâu?Số nguyên không thể chia tách trong .NET

+3

Tôi đã xóa thẻ ASP.NET (-MVC), vì điều này thực sự không liên quan đến hai công nghệ này (đó là tính năng .NET chung). – M4N

+0

Lưu ý rằng từ .NET 2.0 tất cả các kiểu giá trị có thể được khai báo là nullable, không chỉ 'int'. http://msdn.microsoft.com/en-us/library/1t3y8s4s(VS.80).aspx –

Trả lời

15

Số nguyên nullable int? hoặc Nullable<int> là một loại giá trị trong C# có giá trị có thể là null hoặc giá trị số nguyên. Giá trị mặc định là null thay vì 0 và rất hữu ích để đại diện cho những thứ như value not set (hoặc bất kỳ thứ gì bạn muốn nó đại diện).

+1

Cũng hợp lệ trong VB - Dim myInt As Integer? –

+0

'Dim myint là Nullable của Integer '??' –

0

Im giả sử bạn có nghĩa là int? x; mà là viết tắt cho Nullable<int> x;

Đây là một cách để thêm null để loại giá trị, và rất hữu ích trong các tình huống như xử lý cơ sở dữ liệu mà giá trị cũng có thể được thiết lập để null. Theo mặc định, một kiểu nullable chứa null và bạn sử dụng HasValue để kiểm tra xem nó có được gán một giá trị hay không. Bạn có thể gán các giá trị và sử dụng nó như một kiểu giá trị bình thường.

+0

Đây không phải là cú pháp C# hợp lệ. 'var' nên được sử dụng thay vì khai báo loại biến, tức là khi loại biến có thể được suy ra từ cách sử dụng của nó. –

+0

Quá nhiều javascript. Đã sửa. –

8

Một số nguyên vô giá trị có thể được sử dụng theo nhiều cách khác nhau. Nó có thể có giá trị hoặc null. Như ở đây:

int? myInt = null; 

myInt = SomeFunctionThatReturnsANumberOrNull() 

if (myInt != null) { 
    // Here we know that a value was returned from the function. 
} 
else { 
    // Here we know that no value was returned from the function. 
} 

Giả sử bạn muốn biết tuổi của một người. Nó nằm trong cơ sở dữ liệu NẾU người đó đã nộp tuổi của mình.

int? age = GetPersonAge("Some person"); 

Nếu, giống như hầu hết phụ nữ, người đó chưa gửi tuổi của mình thì cơ sở dữ liệu sẽ chứa null.

Sau đó, bạn kiểm tra giá trị của age:

if (age == null) { 
    // The person did not submit his/her age. 
} 
else { 
    // This is probably a man... ;) 
} 
0

int? năm;

bạn có thể đặt chúng trong hành động điều khiển của mình và nếu URL không chứa năm tham số năm sẽ là rỗng, trái với mặc định là 0 có thể là giá trị hợp lệ cho ứng dụng của bạn.

0

Loại vô giá trị sẽ chấp nhận loại giá trị của nó và giá trị null bổ sung.Ích dụng cho cơ sở dữ liệu và các loại dữ liệu khác chứa các phần tử không được chỉ định giá trị.

0

Bất cứ khi nào bạn không thể dự đoán kết quả hoặc đầu ra từ logic nghiệp vụ cụ thể, hãy đi với các loại có thể vô hiệu.

Loại giá trị mặc định (Ex. Int) không được rỗng. Nó phá vỡ một lỗi trong khi cố gắng gán giá trị null. Nhưng các loại nullable sẽ không làm điều đó.

Cảm ơn.

Các vấn đề liên quan