字符串变量名称日期在调试器中很奇怪
有人能告诉我为什么调试器将名为Date
string
变量处理为DateTime
对象?
码:
public class HourRegistration { public string Date { get; set; } }
看屏幕截图:
使用.NET Framework 4.5,VS-2015
谢谢!
更新:
通过将代码减少到最小可能,我发现了明显的问题。
最小化代码:
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { DoSomething(); } public static void DoSomething() { DateTime Date = DateTime.ParseExact("asdasd", "dd/MM/yyyy", CultureInfo.InvariantCulture); } public class HourRegistration { public string Date { get; set; } } } }
截图:
它是另一个与字符串完全相同的上下文中的另一个变量,调试器显示了另一个对象的详细信息(基于上下文)
//There in your above question you are creating a new object with datatype as datetime and variable as Date but this Date is not the one you described in your model.For that you have to do something like below: HourRegistration model = new HourRegistration (); model.Date = DateTime.ParseExact("asdasd", "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString(); //But this code gives an error since you cannot pass a string value to date.It makes no sense.
在调试模式下查找变量值时,它按名称匹配,而不是按内存地址匹配。
我同意其他人,它可以做得更好,而且我已经在以前的版本中看到过这个问题 (至少2013年)。