2014-07-20 20 views
11

Tôi có sau trong WebAPI được chuyển thành một chuỗi JSON và gửi cho khách hàng:Tôi có thể gán giá trị null cho thuộc tính loại ẩn danh không?

return Ok(new 
    { 
     Answer = "xxx", 
     Text = question.Text, 
     Answers = question.Answers.Select((a, i) => new 
     { 
      AnswerId = a.AnswerId, 
      AnswerUId = i + 1, 
      Text = a.Text 
     }) 
    }); 

Bây giờ tôi nhận ra rằng tôi muốn gán giá trị null để trả lời. Tuy nhiên điều này mang lại cho tôi một thông báo nói

cannot assign <null> to anonymous type property. 

Có cách nào tôi có thể làm điều này mà không cần phải xác định một lớp chỉ vì vậy tôi có thể gán null?

Trả lời

36

Tuyệt đối - bạn chỉ cần nhập giá trị null vào đúng loại để trình biên dịch biết loại bạn muốn cho thuộc tính đó. Ví dụ:

return Ok(new { 
    Answer = (string) null, 
    Text = ..., 
    ... 
}); 
+0

Có (string) null thực sự khác với (int) null không? – Anshul

+1

@Anshul: Vâng '(int) null' không hợp lệ ... nhưng nếu bạn chọn loại * * hợp lệ, thì có, chúng khác nhau vì chúng có các loại biên dịch khác nhau, có nghĩa là ẩn danh các loại trong kết quả sẽ có các loại thuộc tính khác nhau. –

+0

"Vâng (int) null không hợp lệ" - Không chắc tại sao tôi không nhận ra điều đó. Tất nhiên. Cảm ơn câu trả lời của bạn. Có ý nghĩa. – Anshul

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