我正在使用 C# 编写游戏,因此,我非常关心性能。
我想知道主要区别是什么,如果可能的话,我想知道使用类来传递数据或通过引用传递结构的性能考虑因素。
出于性能原因,我不希望到处复制数据(我假设这里通过 ref 传递比通过 value 传递快得多)。
我知道类总是通过引用传递,而结构是通过值传递,但我在这里讨论的是通过引用传递结构。
我希望传递的数据示例:
public delegate void PathCompleteDelegate(List<PathFinderNode> path);
public struct PathFinderJob{
public PathCompleteDelegate callback;
public Vector3 start, end;
public PathSize unitSize;
public BoxCollider boxCollider;
}
在前面的示例中,使用类会有所不同吗?如果是这样,区别是什么?在这个例子中,类会比结构更快吗?为什么?
谢谢。 若昂·卡洛斯
最佳答案
I know that a class is always passed by reference and that a struct is passed by value, but I talking about passing the struct by reference here.
您的想法可能是正确的,但这是不正确的。 C# 中的所有内容均按值传递,除非您使用 ref
关键字。
类实例是引用类型,结构实例是值类型。
按值传递引用类型时,传递的是引用的副本(小)。当您按值传递值类型时,您传递的是整个数据的副本(可能很大)。
Jon Skeet 对所有这一切都有很好的解释 here .
关于c# - 类 VS 引用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923256/