c# - C# 中的 "Dereference"变量

标签 c# .net

我在 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/

相关文章:

c# - 理解 SOLID 设计的单一职责原则

java - 通过 TCP 发送文本

.net - 何时使用.NET BufferedStream 类?

.net - 如何从代码访问 Azure 证书?

.net - 如何防止我的 .Net dll 被添加为引用?

c# - 无法使用带有 c# 的 ASP.net 从 SMTP 服务器发送邮件

.net - 通过 tls 1.2 的 HttpListener 通信

c# - 将DataContext设置为StaticResource的属性

c# - 以特定用户身份查询 AAD Graph API

c# - ASP.NET Core 未同时响应所有请求 Http