in ref 有什么缺点吗
Are there any downsides of in ref
我只是想知道使用 c# 7.2 中的 in
方法参数有什么缺点
我知道这是推荐用于处理 Structs 的,他们说它不会 increase performance that much 但据我所知,这不会对代码产生任何负面影响,并且可能会帮助您在执行递归时处理堆栈溢出异常。
有谁知道不应将所有方法标记为 in
的充分理由吗?
I found 为什么人们建议避免使用 ref
和 out
但它们在这里不起作用。
由于这是一个与性能相关的问题,因此引入了讨论 in
,如果不真正测量具体代码示例的性能,很难找到单一的正确答案。
但是……
我们知道 in
创建了一个引用,它在 x86 OS 上是 32bit
,在 x64 OS 上是 64bit
。
现在考虑像
这样的结构
struct Token
{
char x;
}
在 x64 OS 上,将此结构复制到堆栈上,可能比创建对相同数据的 64bit
引用执行得更快。
此外,请不要忘记,in
意味着 "constantness" 在实例上,这超出了性能推理,直接针对您的设计。因此,虽然从性能相关的问题来看,一些推理可能是有争议的,但从设计的角度来看,in
具有针对特定设计用例的独特而清晰的语义。
我只是想知道使用 c# 7.2 中的 in
方法参数有什么缺点
我知道这是推荐用于处理 Structs 的,他们说它不会 increase performance that much 但据我所知,这不会对代码产生任何负面影响,并且可能会帮助您在执行递归时处理堆栈溢出异常。
有谁知道不应将所有方法标记为 in
的充分理由吗?
I found 为什么人们建议避免使用 ref
和 out
但它们在这里不起作用。
由于这是一个与性能相关的问题,因此引入了讨论 in
,如果不真正测量具体代码示例的性能,很难找到单一的正确答案。
但是……
我们知道 in
创建了一个引用,它在 x86 OS 上是 32bit
,在 x64 OS 上是 64bit
。
现在考虑像
这样的结构struct Token
{
char x;
}
在 x64 OS 上,将此结构复制到堆栈上,可能比创建对相同数据的 64bit
引用执行得更快。
此外,请不要忘记,in
意味着 "constantness" 在实例上,这超出了性能推理,直接针对您的设计。因此,虽然从性能相关的问题来看,一些推理可能是有争议的,但从设计的角度来看,in
具有针对特定设计用例的独特而清晰的语义。