Reputation: 1351
If I place a breakpoint and cause code execution to pause on a line where I wish to test the value of a DateTime variable, the Visual Studio 2013 debugger will display the value of my DateTime variable in the form "{10/1/2017 12:00:00 AM}" when I hover it and even allow me to begin to edit it--but when I press Enter I get the error, "Invalid expression term '{'". What is the proper way to edit a DateTime variable on the fly during a debug session?
Upvotes: 5
Views: 3960
Reputation: 13266
Where the DateTime
is a property of another object, it's possible to set the value using the Immediate Window. In the example command
is a generic type parameter passed to a method so needs to be cast to the correct type before the property is accessible:
(command as SomeCommandWithDateTimeProp).ToDate = System.DateTime.Parse("2021-10-12")
Upvotes: 0
Reputation: 1351
While execution is paused, a little datatip pop-up appears when you hover over your DateTime variable. Click the date within to begin editing it. Switch the squiggly parentheses to quotes, and surround the entire quoted date with a call to DateTime.Parse, like so:
DateTime.Parse("10/1/2017 12:00:00 AM")
You can then change the date inside the quote to whatever new date you want--and when you press Enter, the corresponding DateTime value will be inserted into your variable on the fly!
Upvotes: 13
Reputation: 1785
Perhaps, this could help:
How do I enter a DateTime value in the VS QuickWatch window?
This post says that is's immutable: https://stackoverflow.com/a/489741/267000
Another way to edit it at runtime is Open Immediate Window: Debug -> Windows -> Immediate and edit with usual in C# syntax
Upvotes: 0