2013-07-15 28 views
6

Tôi có 2 Ngày giờ vô hiệu, vì vậy trừ đi chúng sẽ dẫn đến một TimeSpan có thể vô hiệu. Tôi muốn gọi số .Value về điều này.Visual Studio 2012 không nhận dạng được loại không có giá trị

Tuy nhiên, autocompletion danh sách thả xuống cho rằng loại bên trong dấu ngoặc là một TimeSpan bình thường. .Value không có trong danh sách và khi tôi sử dụng bất kỳ đề xuất nào, nó không biên dịch. Nó biên dịch khi tôi gõ .Value.

Sự cố tương tự xảy ra nếu chỉ một trong các DateTimes là không thể thực hiện được. Điều này cũng xảy ra nếu tôi thêm một số TimeSpan? vào số DateTime? dẫn đến một số DateTime?. Intellisense nghĩ rằng đó là DateTime.

Đây có phải là vấn đề với IntelliSense của Visual Studio không? Tôi đang cập nhật 3, tôi không có ReSharper. Vấn đề tương tự trên máy tính khác.

Chỉnh sửa: để rõ ràng, tôi hỏi một câu hỏi về lý do tại sao intellisense đề xuất loại sai. Tôi biết phải viết gì để biên dịch mã.

+0

Lạ lùng, điều gì sẽ xảy ra khi bạn truyền như là Thời gian biểu tức là. '(TimeSpan) (ngày1 - ngày 2) .'? – JMK

+0

@JMK nó làm việc đúc cuối cùng, vì vậy hành vi tương tự. Bạn có nghĩa là để đặt toàn bộ điều trong ngoặc? '((TimeSpan?) (Ngày1 - ngày 2)). Giá trị' hoạt động chính xác. – Tom

+0

Đã được yêu cầu chỉ ra khỏi tò mò chủ yếu, sẽ được quan tâm để biết những gì nó quay ra được :) – JMK

Trả lời

5

Đồng ý, IS nhận sai và không suy luận đúng rằng kết quả của phép trừ là Nullable<TimeSpan>, nó gây ra TimeSpan. Bạn có thể Whack nó trên đầu bằng cách viết nó như thay vì điều này:

var span = date1 - date2; 
span. 

Bây giờ là không đúng suy ra các loại của khoảng biến, bạn sẽ thấy HasValue trong cửa sổ tự động hoàn thành. Điều này nếu không không chậm hơn ở tất cả tại thời gian chạy như vậy một cách giải quyết hợp lý của nó.

Không có gì bạn hoặc chúng tôi có thể làm về các oops gốc, tuy nhiên bạn có thể gửi báo cáo phản hồi tại connect.microsoft.com. Đăng liên kết để chúng tôi có thể bỏ phiếu cho nó.

+0

Cảm ơn, ở đây bạn truy cập https://connect.microsoft.com/VisualStudio/feedback/details/793983/intellisense-inferring-incorrect-type – Tom