我在 C# 中有一些代码使用这样的结构:
ArrayList addrs = new ArrayList();
byte[] addr = new byte[8];
while (oneWire.Search_GetNextDevice(addr))
{
addrs.Add(addr);
}
在这个例子中,ArrayList
中的每个元素都与找到的最后一个设备相同,因为它看起来好像 addr
是通过引用传递出去的,我我只是将该引用复制到 ArrayList
中。
有什么方法可以“取消引用”addr
以仅提取它的值吗?
也有可能我对情况的评估不正确,如果是这种情况,请告诉我
谢谢!
最佳答案
如果 addr
是一个类变量(而不是结构),它会计算出来。
在那种情况下,Search_GetNextDevice()
将一遍又一遍地填充同一个实例。
你也许可以用类似的东西来解决它
byte[] addr = new byte[8];
while (oneWire.Search_GetNextDevice(addr))
{
addrs.Add(addr);
addr = new byte[8];
}
更新了 byte[]
信息
关于c# - C# 中的 "Dereference"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701364/