2010-01-01 43 views

Trả lời

29

Xem MSDN.

Trong trường hợp đó, chỉ sử dụng myNullableVariable.Value (nếu bạn chắc chắn nó có giá trị) hoặc (myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere nếu bạn không có.

Bạn cũng có thể sử dụng GetValueOrDefault() nếu một người không quan tâm nếu giá trị mặc định là giá trị cụ thể khi giá trị rỗng thực sự là rỗng.

Cách cuối cùng để thực hiện là: myNullableVariable.Value ?? defaultvalue.

Xem, về mặt kỹ thuật, biến số MyType?Nullable<MyType> dưới trang bìa. Không có phôi tiềm ẩn hoặc rõ ràng giữa hai, do đó, những gì bạn cần làm là trích xuất giá trị ra khỏi số Nullable theo cách thủ công. Cách thứ ba tôi liệt kê là cách gọn gàng nhất (và tốt nhất?) Để làm điều đó, điều đó có lẽ sẽ là tốt nhất trong hầu hết các trường hợp.

+0

Cảm ơn bạn đã trả lời, nhưng bạn có thể giải thích thêm một chút không? – Dooie

+0

Điều đó có hữu ích không? – RCIX

+0

Ok, tôi đã nhận nó ngay bây giờ ... cảm ơn :) – Dooie

0

Đầu tiên intialize biến guid.

Guid yourGuid= Guid.NewGuid() 

sau đó thiết lập giá trị ở chỗ mà bạn muốn cho ví dụ: '? System.Guid'

Guid defaultId = Guid.NewGuid(); 
if (customerRow.GuardianState.Length > 2) { 
Guid StateId = record.StateId ?? defaultId;} 
4

Sử dụng Guid tài sản .Value để chuyển đổi thành 'System.Guid'. như ví dụ sau

Obj GetValue(Guid yourID) 
{ 
return FetchObject(yourID) 
} 
Void main() 
{ 
Guid? passvalue; 
Obj test = GetValue(passvalue.Value); 
} 
-1

không thể chuyển đổi từ 'System.Guid?' vào 'System.Guid'

bạn đang cố gắng lưu loại System.Guid? đối với một loại system.Guid bên trong mô hình của bạn, bạn có thể chỉnh sửa System.Guid? tới System.Guid bằng cách xóa dấu chấm hỏi.

hoặc Câu trả lời RCIX ở trên

+1

Câu trả lời đã được chấp nhận 7 năm trước, giá trị mới này mang lại những gì? –

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