c#在这里框一个结构?通过引用传递结构时C#框或复制?
struct S { int x; }
void foo(ref S s) { s.x = 1; }
main {
var s = new S();
foo(ref s); <-- boxing??
}
我听说过有关结构类的奇怪的东西。这里有拳击吗?这是传递成员的副本吗?
class C { S s; }
main {
var c = new C();
foo(ref c.s); <-- boxing here?? copy here???
}
void foo(ref S s) { s.x = 1; }
如果产生副本,'ref'会有什么意义?这是没有'ref'的情况。所以'ref',为了不完全多余,必须有所不同,因为......不作复制。 – stakx
我是一名C++开发人员。当我看看C#做什么时,一切似乎都是多余的! :)我想知道在使用它之前,什么东西会花费我。那么为什么不会在值类型框中引用值类型,以便它可以像引用类型那样传递它。请问。 – johnnycrash
任何一个代码片段都没有复制或装箱。 –