How does Returning a Struct as an Interface work?

.net, c#, interface, struct

Solution

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

Problem

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(); } ```

Original source