in ref 有什么缺点吗

Are there any downsides of in ref

我只是想知道使用 c# 7.2 中的 in 方法参数有什么缺点 我知道这是推荐用于处理 Structs 的,他们说它不会 increase performance that much 但据我所知,这不会对代码产生任何负面影响,并且可能会帮助您在执行递归时处理堆栈溢出异常。 有谁知道不应将所有方法标记为 in 的充分理由吗? I found 为什么人们建议避免使用 refout 但它们在这里不起作用。

由于这是一个与性能相关的问题,因此引入了讨论 in,如果不真正测量具体代码示例的性能,很难找到单一的正确答案。

但是……

我们知道 in 创建了一个引用,它在 x86 OS 上是 32bit,在 x64 OS 上是 64bit

现在考虑像

这样的结构
struct Token
{
    char x; 
} 

在 x64 OS 上,将此结构复制到堆栈上,可能比创建对相同数据的 64bit 引用执行得更快。

此外,请不要忘记,in 意味着 "constantness" 在实例上,这超出了性能推理,直接针对您的设计。因此,虽然从性能相关的问题来看,一些推理可能是有争议的,但从设计的角度来看,in 具有针对特定设计用例的独特而清晰的语义。