一个简单的问题,但我还没有找到Stack Overflow的明确答案.
struct foo { int x; int y; int z; } foo Func() { return new foo(); } void Func2() { foo f = Func(); // did Boxing and unBoxing occur? }
从函数返回时,C#struct(值类型)是否始终复制到堆栈中,无论它有多大?我不确定的原因是,对于除MSIL之外的一些指令集(例如x86),返回值通常需要适合处理器寄存器,并且不直接涉及堆栈.