问题标签 [ref]
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.
c# - 为什么在传递对象时使用 'ref' 关键字?
如果我将对象传递给方法,为什么要使用 ref 关键字?这不是默认行为吗?
例如:
输出是“Bar”,这意味着该对象是作为引用传递的。
c# - 对对象类型使用“ref”和/或“out”
我坚持使用 .Net 1.1 应用程序(即我现在不能使用 2.0 中的泛型好东西),并且我试图优化代码的某些部分。由于它处理了很多需要释放的运行时可调用包装器,因此我最终创建了一个实用方法,该方法循环直到所有引用都被释放。该方法的签名是:
释放所有 comObjects 后,我调用 GC.Collect 和 GC.WaitForPendingFinalizers(不要问 - 任何处理 Office 互操作的人都知道)。
而且......像往常一样,我遇到了一个极端情况 - 如果我没有在 GC.Collect 调用之前将相应的托管引用分配给 null ,它就不会正确清理。
所以,我的代码看起来像:
因为有一堆xxx=null,所以我决定把它放在util方法中,但是由于引用传递和引用参数传递之间存在差异,显然我不得不将方法更改为:
并将调用者编辑为:
这失败并显示一条消息:“无法从 'out MyComClass' 转换为 'out object'”
虽然我能想到为什么它可能是一个问题(即从 object 到 MyComClass 的反向转换不是隐式的,并且不能保证该方法会做什么),但我想知道是否有解决方法,或者我需要留下我的数百个空值分配。
注意:我有一堆不同的 COM 对象类型,这就是为什么我需要一个“对象”参数,而不是一个类型安全的参数。
latex - Latex:对单个长表行的超引用
我有几个长表可以延伸几页,我想使用 pageref 和 hyperref 链接到这些行。
但无论我尝试什么,链接总是指向表格的开头。当我查看 aux 文件时,所有标签似乎都被重新定义为 table.[number of table]。
我尝试将不可见的虚拟人物放入表格中,但这只会给我带来太多浮点数的错误。
我还尝试将标签放入小型页面,但无济于事。
即使将标签放入脚注也不起作用,不知何故 longtable 似乎总是能找到它们。
c# - 'ref' 和 'out' 关键字有什么区别?
我正在创建一个函数,我需要在其中传递一个对象,以便该函数可以修改它。有什么区别:
和
我应该使用哪个,为什么?
c# - 在 C# 中何时使用 ref 以及何时不需要
我有一个对象,它是程序的内存状态,还有一些其他工作函数,我将对象传递给它以修改状态。我一直通过 ref 将它传递给工作函数。但是我遇到了以下功能。
它让我感到困惑,因为两者received_s
都remoteEP
从函数返回内容。为什么remoteEP
需要 aref
而不需要received_s
?
我也是一名交流程序员,所以我无法从脑海中获取指针。
编辑:看起来 C# 中的对象是指向引擎盖下对象的指针。因此,当您将对象传递给函数时,您可以通过指针修改对象内容,并且传递给函数的唯一内容是指向对象的指针,因此不会复制对象本身。如果您希望能够在函数中切换或创建一个新对象,就像双指针一样,您可以使用 ref 或 out 。
c# - passing in object by ref
What is the difference between
essentially what is the point of "ref". isn't an object always by reference?
c# - C#:如何将 null 传递给期望 ref 的函数?
我有以下功能:
我想这样称呼:
不幸的是,我无法传入null
需要类型的字段,ref Mapping
并且我尝试过没有强制转换来解决此问题。
有什么建议么?
c# - Ref Abuse:值得清理吗?
我继承了一些广泛且不必要地使用ref关键字的代码。最初的开发人员显然担心如果不使用ref ,对象会像原始类型一样被克隆,并且在编写 50k+ 行代码之前没有费心研究这个问题。
这与其他不良编码实践相结合,造成了一些表面上非常危险的情况。例如:
你能想象走进一家商店改变你的地址,然后作为一个完全不同的人走出去吗?
可怕,但实际上在此应用程序中使用ref似乎是无害的多余。我很难证明清理它需要花费大量时间。为了帮助推销这个想法,我提出以下问题:
对 ref 的不必要使用还有什么破坏性?
我特别关心维护。带有示例的合理答案是首选。
也欢迎您争辩没有必要进行清理。
c# - 在 C# 中,在哪里使用“ref”在参数前面?
关于“ref”和“out”参数的定义已经存在许多问题,但它们似乎是糟糕的设计。是否存在您认为 ref 是正确解决方案的情况?
似乎您总是可以做其他更清洁的事情。有人可以给我一个例子,说明这将是解决问题的“最佳”解决方案吗?
c# - 可以安全地假设所有由 new 初始化的 C# 变量都是引用吗?
我现在正在学习 C# refs。
假设所有分配有 new 的变量都是引用而不是值是否安全?
例子: