问题标签 [byval]
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 - 最佳实践:ByRef 还是 ByVal?在.Net
在 ByRef 和 ByVal 之间进行选择时需要考虑哪些事项。
我了解两者之间的区别,但我不完全了解 ByRef 是否可以节省资源,或者我们是否甚至需要在 .Net 环境中担心这一点。
如果功能在某种情况下无关紧要,您如何在两者之间做出决定?
javascript - 在javascript中按值传递匿名函数?
我有一个函数,它接受一个匿名函数作为参数并将其设置为一个变量(范围)以供参考。然后我尝试使用该引用执行另一个函数,但它显然失败了,因为该函数超出了范围。
我想知道是否有人知道将匿名函数作为匿名函数直接传递的简单方法,避免范围问题?
编辑:为了澄清, el 元素是在函数与参数列表隔离后定义的。此外,el 元素也是参数列表的一部分。如果只有我使用此代码,我可能会使用两个参数列表,第二个参数是数组或哈希对象,但不幸的是,此代码将被一些不太熟悉 JS 甚至编码的人使用对于这个问题。
谢谢您的帮助!
这是我的代码的相关部分:
这是缩写的,所以只要相信 el 已定义。JAS.Globals.eventListen 只是一个智能的 addEventListener。
vb.net - VB.NET:如果我将 String ByVal 传递给函数但不更改字符串,内存中是否有一个或两个字符串?
我知道字符串是不可变的,所以当您更改字符串引用的值时,.NET 会在堆上创建一个全新的字符串。
但是如果你不改变字符串引用的值呢?相反,您只需将它传递给一个函数ByVal
——这个操作是否也会复制堆上的字符串值?我的倾向是“不”,但我想确认一下。
例如:
调用程序:
我知道myWord
按值传递会复制对“Blah”的引用,但由于我没有尝试更改字符串本身,它会在堆上制作另一个字符串副本吗?
excel - 如何使循环中的绝对单元格引用工作并跳过循环中的列?
我几乎让我的代码工作了,但它仍然有两件事有问题(无论如何是两件主要的事情)。
1)绝对单元格参考。不像在Excel中那样工作。我想要例如 $A5 但不是更改为 A6 A7 等,而是在整个循环中保持 A5。
2)我需要跳过第三列。我只需要我的循环写入 VOL 和 CAP 下的列,而不是 %UTIL。如何告诉我的循环跳过 $UTIL?
c# - 更新 IEnumerable<> 中对象的属性
我正在开发一些应该用于特殊类型实验的软件。
使用以下方法进行实验:
1)“芯片”(基本上是已知尺寸的XY网格)。2) 每个芯片都包含“电极”,通过芯片上的 X 和 Y 坐标以及唯一的 ID 来标识。每个电极还可以容纳或不容纳样品,由一个简单的布尔值表示(它是一个生物传感芯片)。
我有在 C# 中表示此硬件的对象。
我现在需要在实验中使用硬件;
1)我有一个“实验”,它公开了一个持有“ExperimentStep”对象的 IEnumerable。2)“ExperimentStep”包含一个名称,以及涉及的“电极”的有限列表等。
一些实验步骤可以同时运行并且可以改变电极的“HasSample”属性。因此,当我执行“ExperimentStep”时,最好随时了解初始“HasSample”属性是什么。
这就是我的问题所在;
如果我只是将“Electrode”对象传递给我的“ExpermentStep”,它们可能会通过 Value... 是否可以创建一个 IEnumerable 来保存对唯一电极的引用,以便每次我想运行“ExperimentStep”该步骤中使用的“电极”列表包含“HasSample”的最新值?我应该为此使用指针吗?根据我对 C++ 的有限知识,我希望这在该语言中是微不足道的(因为您大部分时间都使用指针)。但是在 C# 中我真的一无所知(而且我经验不足)。
asp.net - 按值实例化局部变量?
我有点理解为什么会这样,但不完全理解。我有一个带有Shared
( Static
) 变量的基类,声明如下:
在派生类的方法中,我设置了一个局部变量,如下所示:
现在,当我执行类似的操作时myLocalVar.Property1 += value
, in 的值Property1
将持续到该方法的下一次调用!我想我明白为什么会发生这种情况;myVar
是按引用而不是按值设置的,但我以前从未遇到过这样的事情。有什么方法(除了我的解决方法是使用 的属性值创建一个新对象myVar
)myLocalVar
按值创建?
vb.net - 在方法调用 VB.NET 上将 Byref 切换为 Byval
在方法调用上将 Byref 切换为 Byval
由于以下原因,我提出了许多警告:
“在将 'ByRef' 参数 zzzz 的值复制回匹配的参数时,从 xxxx 到 yyyy 的隐式转换。”
我的感觉是,将函数参数从 byref 更改为 byval 是安全的,因为这些方法中的引用类型指针没有做任何特别的事情,引用类型只是被使用,我认为如果运行,行为将完全相同使用副本而不是原始指针。
另一个考虑是我有两个从基类继承的类。同样的情况发生在 byref 参数导致从基类到更窄的具体类的隐式转换。同样,我也看不出这段代码运行 byval 有任何问题。
在处理引用类型时,有没有人有关于在函数中使用参数的任何提示?
目前在我的项目中通过byref 传递的其他一些东西是数据库连接对象,即OracleConnection 和SqlConnection。是否有充分的理由将这些传递到 byref?
示例 1
在将 'ByRef' 参数 'value' 的值复制回匹配的参数时,从 'Object' 到 'Integer' 的隐式转换。
调用代码:
功能:
示例 2
在将“ByRef”参数“reader”的值复制回匹配的参数时,从“System.Data.IDataReader”隐式转换为“System.Data.SqlClient.SqlDataReader”。
调用代码:
方法:
c# - 如何在 C# 中“做”ByVal
据我了解,C# 通过引用将参数传递给方法。在 VB.NET 中,您可以使用 ByVal 和 ByRef 指定它。默认值为 ByVal。
这是为了与 Visual Basic 6.0 兼容,还是只是随机的?另外,如何指定在 C# 中使用什么?我有点喜欢按值传递参数的想法。
vb.net - 传递字符串时的 ByRef 与 ByVal 性能
阅读哪个更快?ByVal 还是 ByRef?让我想知道那里的评论是否确实适用Strings
于性能。由于字符串在传递之前被复制,传递字符串不是更有效(如果被调用者不需要字符串课程的副本)ByRef
吗?
谢谢,
CFP。
编辑:考虑一下这段代码,这让我觉得有某种副本正在进行:
它输出: