簡體   English   中英

DateTime,類型'System.InvalidOperationException'的例外

[英]DateTime, an exception of type 'System.InvalidOperationException'

使用我正在使用的TimePicker來解決這個問題。 當我沒有選擇任何時候我收到此錯誤:

An exception of type 'System.InvalidOperationException'

發生異常的地方是這一行:

DateTime break1S = (DateTime)startBreak1.Value;

問題是當你沒有在選擇器中設置任何值時它設置一個默認值。 但為什么不使用呢? 以下是局部變量的外觀:

在這里你看到break1S有一個值

你可以看到break1S有一個值,所以問題是什么。

這是整個代碼:

 DateTime date = (DateTime)datePicker.Value;
 DateTime start = (DateTime)startingTime.Value;
 DateTime end = (DateTime)endingTime.Value;
 DateTime break1S = (DateTime)startBreak1.Value;
 DateTime break1E = (DateTime)endBreak1.Value;
 DateTime break1S = (DateTime)startBreak1.Value;
 DateTime break1E = (DateTime)endBreak1.Value;
 DateTime break2S = (DateTime)startBreak2.Value;
 DateTime break2E = (DateTime)endBreak2.Value;

            _nestedDateStart = new DateTime(date.Year, date.Month, date.Day, start.Hour, start.Minute, 0);
            _nestedDateEnd = new DateTime(date.Year, date.Month, date.Day, end.Hour, end.Minute, 0);
            _nestedDateStartBreak1 = new DateTime(date.Year, date.Month, date.Day, break1S.Hour, break1S.Minute, 0);
            _nestedDateEndBreak1 = new DateTime(date.Year, date.Month, date.Day, break1E.Hour, break1E.Minute, 0);

好吧,你應該檢查那一刻“startBreak1”項目中的內容。 可能是從startBreak1.Value到DateTime的強制轉換導致此錯誤。

Break1S有一個值,但這與問題無關,因為ir是1月1日0001 - 任何DateTime結構的初始值。 問題很可能是因為強制轉換(如果startBreak1.Value是DateTime?或Nullable,那么你的選擇是使用另一種類型的構造,即

DateTime break1S = startBreak1.Value.HasValue ? startBreak1.Value.Value : DateTime.MinValue;

請注意,而不是DateTime.MinValue您可以使用DateTime.Now,DateTime.Today,DateTime.Now.AddMinutes(-10)或您認為應該適當的任何內容默認情況下,如果startBreak1.Value沒有設置實際值。

我不是Windows Phone的專家,但在我看來,TimePicker控件的Value屬性被定義為DateTime? 意思是可以為空的DateTime。
當您嘗試將其分配給DateTime變量(不能接受空值)並且TimePicker為null時,您將獲得InvalidOperationException

你可以試試

startBreak1  = startBreak1.Value ?? DateTime.MinValue;

檢查DateTimePicker的“MinDate”和“MaxDate”屬性。

'1/1/0001 12:00:00 AM'可能不會落在他們之間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM