设为首页收藏本站
授权版本:2024_07
开启左侧

[C#] c#里本地变量赋值给halcon算子运行后改变了我的本地值

[复制链接]
明空 发表于 2024-1-22 11:22:26 | 显示全部楼层 |阅读模式
各位大佬。
我的本地存储的值发给halcon算子做一些取值运算,但是运算完成之后把我本地值给修改了。我后来又加了一个中间变量,每次把值赋给中间变量,再由中间变量传值进去运行,但是还会出现这种问题,这是什么情况呢,有什么办法解决呢

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
绝地武士 发表于 2024-1-22 15:35:24 | 显示全部楼层
这种情况大概率是引用类型导致的,仔细检查下你的相关代码看看是否更改了对应值并且写入了
之前遇到一个会员出现类似的问题,是变量重叠导致被改写了,找不到的时候可以分析内存变化来定位问题。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
18861175562 发表于 2024-1-22 16:41:01 | 显示全部楼层
中间变量需要使用深度拷贝
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
新凉无处暑 发表于 2024-1-24 09:01:30 | 显示全部楼层
Htuple data=new Htuple(值),用这个作为中间变量
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
@lx@ 发表于 2024-2-19 14:51:07 | 显示全部楼层
传的是变量引用吧,可以将变量深拷贝一下再传递
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
ybvip 发表于 2024-2-21 11:48:20 | 显示全部楼层
c# java这种面向对象的语言,除了基本类型是值拷贝,对象类型传递给函数的过程中,参数都是引用传递,比较频繁创建对象是一个很大的开销,这种情况只能通过 HTuple 的 Copy 方法创建一个副本,然后将副本传递给方法。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
JLennon 发表于 2024-2-27 17:14:38 | 显示全部楼层
楼上的说的没错,应该就是引用类型造成的。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表