【发布时间】:2019-03-07 21:02:14
【问题描述】:
在 Unity 中,您必须在代码中多次处理 Vector2 和 Vector3 值。两者都是结构,这意味着当您使用小函数使代码模块化时,每次将这些值传递给函数参数时,您都会复制它们。是的,您将它们复制到堆栈中,但如果我们可以传递它的引用,我们仍然可以减少工作量。我们可以通过引用将值类型传递给函数而不处理装箱问题。
换句话说,我可以在堆栈上获取值类型变量的引用以供以后使用吗?
附:我是一个 C++ 人,这就是为什么我提出这么愚蠢的问题 :)
【问题讨论】:
-
尝试使用 ref 关键字...docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
-
见stackoverflow.com/questions/33375590/…。长话短说,您可能最终得到略低于最佳的代码,但 C# 并非旨在优化此级别。如果需要,您可以查找关键字
unsafe和“正常”指针,但“以防万一”并不是一个好主意。
标签: c# function reference pass-by-reference value-type