嗨这是真的困扰我的事情,我希望有人能给我一个答案.我一直在阅读ref(和out),我正在试图弄清楚我是否正在使用refs 减慢我的代码.通常我会替换类似的东西:
int AddToInt(int original, int add){ return original+add; }
Run Code Online (Sandbox Code Playgroud)
同
void AddToInt(ref int original, int add){ original+=add; } // 1st parameter gets the result
Run Code Online (Sandbox Code Playgroud)
因为我的眼睛这个
AddToInt(ref _value, _add);
Run Code Online (Sandbox Code Playgroud)
比这更容易阅读和编码
_value = AddToInt(_value, _add);
Run Code Online (Sandbox Code Playgroud)
我确切地知道我在使用代码时正在做什么ref,而不是返回一个值.但是,性能是我认真对待的,显然,当你使用refs时,解除引用和清理会慢得多.
我想知道的是为什么我读的每个帖子都说你通常会传递的地方很少ref(我知道这些例子是人为的,但我希望你能得到这个想法),当我觉得这个ref例子是更小,更清洁,更准确.
我也很想知道为什么ref真的比返回一个值类型慢 - 对我来说,在我看来,如果我要在返回它之前编辑很多函数值,那么引用实际变量会更快在从内存中清除之前不久编辑它而不是该变量的实例.