The following code works, but I can't figure out what's going on memory-wise. Where and how is the struct value t
copied?
interface ITest { void Hello(); }
struct STest : ITest
{
public void Hello() { Console.WriteLine("Hello"); }
}
static ITest Make()
{
STest t = new STest();
return t;
}
static void Main(string[] args)
{
ITest it = Make();
it.Hello();
}
When you cast the struct to an interface, it boxes the struct if that is what you are asking? http://blogs.msdn.com/abhinaba/archive/2005/10/05/477238.aspx
It will be boxed on the return t;
statement. At this point, the value is copied from the stack to the heap.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With