C# Can';t在局部变量窗口VS2015中编辑十进制类型值

C# Can';t在局部变量窗口VS2015中编辑十进制类型值,c#,debugging,decimal,C#,Debugging,Decimal,示例C#代码(表单加载事件中): 在messagebox行上放置断点并运行。尝试在本地窗口(或自动或监视)中编辑值a、b、c和d。整数、双精度和字符串值可以更改,但十进制值(c)会不断更改回原始值(9.99m)。为什么会这样?可能的错误?还是我没有得到什么?此问题已在2016年3月30日发布的Visual Studio 2015 Update 2中得到解决。您是否尝试在即时窗口中放置类似c=10.99m的内容?这听起来像是一个bug,因为我可以在VS 2013的本地窗口中更改它。刚刚在VS 20

示例C#代码(表单加载事件中):


在messagebox行上放置断点并运行。尝试在本地窗口(或自动或监视)中编辑值a、b、c和d。整数、双精度和字符串值可以更改,但十进制值(c)会不断更改回原始值(9.99m)。为什么会这样?可能的错误?还是我没有得到什么?

此问题已在2016年3月30日发布的Visual Studio 2015 Update 2中得到解决。

您是否尝试在即时窗口中放置类似
c=10.99m
的内容?这听起来像是一个bug,因为我可以在VS 2013的本地窗口中更改它。刚刚在VS 2015中尝试过,我也无法在本地窗口中设置小数。在即时窗口中进行设置时,我会得到一个
System.Reflection.TargetParameterCountException
,因此,如果在即时窗口中放置
c=default(decimal)
c=new decimal()
,则它会工作,但我尝试过的所有其他操作都会抛出。非常奇怪。如果我把
var s=10.99m然后
c=s在即时窗口中它工作。所以,我想你现在可以把它作为一种解决办法。更奇怪的是,我可以在本地和即时窗口中设置
s
的值,但仍然不能直接设置
c
  int a = 5;
  double b = 7.2;
  decimal c = 9.99m;
  string d = "test";
  MessageBox.Show(a.ToString() + "\n" + b.ToString() + "\n" + c.ToString() + "\n" + d);