C# 如何将手表值存储到程序中的变量中?
假设我正在调试,我有一个变量C# 如何将手表值存储到程序中的变量中?,c#,visual-studio,C#,Visual Studio,假设我正在调试,我有一个变量 bytes[] x = new byte[]{0x00, 0x01, 0x02} 我对这个变量进行了一些计算,现在在调试器中,我可以看到我的变量x已经改变了。如何复制整个变量x的值并将其用于以后的测试 例如,在“监视”窗口中,经过计算后,x现在是585字节的数组。所以我希望在我的程序中有一个变量 bytes[] newx = new byte{All the 585 bytes here} 我知道我可以选择每个单独的字节,然后一个接一个地复制它以形成一个新的变量
bytes[] x = new byte[]{0x00, 0x01, 0x02}
我对这个变量进行了一些计算,现在在调试器中,我可以看到我的变量x已经改变了。如何复制整个变量x的值并将其用于以后的测试
例如,在“监视”窗口中,经过计算后,x现在是585字节的数组。所以我希望在我的程序中有一个变量
bytes[] newx = new byte{All the 585 bytes here}
我知道我可以选择每个单独的字节,然后一个接一个地复制它以形成一个新的变量,我想知道是否有一种更聪明的方法可以做到这一点
理想情况下,我希望保存该值,并在稍后的地方使用该变量,如单元测试等,因此我真的不想继续执行计算,只是为了得到新的x值。我不完全理解这个问题,但我会根据我从中得到的回答,所以,您的问题是如何将旧数组中的值存储到新数组中,对吗?如果是这样的话,那么我会使用for循环,但是for循环的问题是,你不能做任何事情来改变数组,只能循环通过它,所以你必须使用一个列表,要做到这一点,你必须使用
System.Collections.Generic
将列表导入脚本
using System.Collections.Generic;
...
bytes[] x = new byte[]{...};
List<bytes> newx = new List<bytes>{};
for(int i=0; i<x.Length; i++){
newx.Add(x[i]);
}
使用System.Collections.Generic;
...
字节[]x=新字节[]{…};
List newx=新列表{};
对于(int i=0;i序列化变量,从即时窗口将其写入文件,如:
File.WriteAllText(@"path",JsonConvert.SerializeObject(bytes));
然后,当您需要它回来时,只需像
bytes=JsonConvert.DeserializeObject<byte[]>(File.ReadAllText(@"path"));
及
bytes=Load(“whatevername”);
实际上,您的代码正在处理内存中的字节,当您停止程序时,x和newx将不再存在。我想问的是一种在字段中保留新x值的方法。谢谢,这段代码起到了作用。我想知道Visual Studio是否有一些本机功能可以帮助我们解决这个问题。这听起来是一个非常好的功能o有。我认为这是一种利基功能。当我开发一个新的库并且需要经常手动更改值时,我只需添加一个序列化程序并初始化测试单元上的值。尽管它没有内置的导入器。感谢共享扩展,我肯定会发现它非常有用。
Save(bytes,"whatevername");
bytes=Load<byte[]>("whatevername");