问题标签 [tracking-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 为什么我的跟踪参考没有更新?
我创建了一个简洁的小函数来删除一个 ienumerable 及其内容(以填补我最近发现的内存泄漏):
DeleteEnumerable
...但是由于某种原因,当我使用调试器进行跟踪时,当我从函数返回时,列表似乎仍然指向一些内存。
我认为通过作为跟踪参考传入它应该修改我传入的句柄?我在这里错过了什么?
编辑:一个更彻底的测试示例......
这是一个稍微更新的处理程序:
这是调用处理器的代码的精简示例:
...这是输出:
老实说,我并不担心删除可枚举的作品是否是其中包含的需要被杀死的对象。我们到处使用这些列表,但我们的系统内存不足,因为它们没有被足够快地清理干净。
更糟糕的是,我们依赖该DeleteEnumerable
函数将列表跟踪引用设置为 nullptr,但是当它们被传回时,跟踪引用似乎没有更新。从控制台输出中可以看出,这不仅仅是调试器问题。
我不明白的是为什么
c++-cli - 为什么不能将跟踪引用用作类成员?
以下代码:
在 Visual Studio 中产生以下错误:
错误 C3160:“int %”:托管类的数据成员不能具有此类型
我认为跟踪引用是一个托管的东西 - 那么为什么它们不能成为托管类的成员呢?另外:如何正确存储对 C++/CLI 中值类型的引用?
c# - 如何调用重载的 c# 函数,唯一的区别是在 c++/cli 中是否通过 ref 传递参数
我有一个带有重载方法的 C# 类库,一个方法有一个 ref 参数,另一个有一个 value 参数。我可以在 C# 中调用这些方法,但在 C++/CLI 中无法正确调用。似乎编译器无法区分这两种方法。
这是我的 C# 代码
和我的 C++/CLI 代码
我知道在 C++ 中我不能声明重载函数,其中函数签名的唯一区别是一个接受一个对象,另一个接受一个对象的引用,但在 C# 中我可以。
这是 C# 支持但 C++/CLI 不支持的功能吗?有什么解决方法吗?
.net - 为什么跟踪引用不给被引用的对象赋值?
我不明白为什么当传递的变量在堆上时跟踪引用没有完成它的工作。这是代码:
第一个TryParseExact
调用使用本地初始化变量timeOnStack
来放置解析的 DateTime 值按预期工作并正确设置解析日期:调用timeOnStack.ToString ()
返回"1/4/2016 1:25:00 PM"
而第二个调用即使返回true
它也没有设置正确的值dc->Time
:调用dc->Time.ToString ()
返回"1/1/0001 12:00:00 AM"
我在这里没有看到什么?