我在C#中有一些使用结构的代码:
ArrayList addrs = new ArrayList();
byte[] addr = new byte[8];
while (oneWire.Search_GetNextDevice(addr))
{
addrs.Add(addr);
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,它中的每个元素ArrayList都与找到的最后一个设备相同,因为它看起来好像addr是通过引用传递出来的,而我只是将该引用复制到了ArrayList.
有没有办法"解除引用" addr只能提取它的价值?
我的评估也可能是不正确的,如果情况确实如此,请告诉我
谢谢!
如果addr是一个类变量(而不是一个结构),它会想象.
在这种情况下,Search_GetNextDevice()将一遍又一遍地填充相同的实例.
你可以用类似的东西来解决它
byte[] addr = new byte[8];
while (oneWire.Search_GetNextDevice(addr))
{
addrs.Add(addr);
addr = new byte[8];
}
Run Code Online (Sandbox Code Playgroud)
更新了byte[]信息
| 归档时间: |
|
| 查看次数: |
2401 次 |
| 最近记录: |