参考中是否有任何缺点

时间:2018-03-27 13:15:24

标签: c# c#-7.2

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

1 个答案:

答案 0 :(得分:1)

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

但是......

我们知道in在x86操作系统上创建32bit,在x64操作系统上创建64bit

现在考虑像

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

在x64操作系统上,在堆栈上复制此结构可能会比创建64bit对相同数据的引用更快地执行。

另外,不要忘记,in暗示实例上的“常量”,这超出了性能推理,直接针对您的设计。因此,虽然从性能相关问题来看,一些推理可能是有争议的,但从设计的角度来看,in具有明确的语义,可以针对特定的设计用例。