struct is a value type while interface is a reference type.
A cast from struct to an interface is a boxing.
using System;
interface Printable
{
void print();
}
struct Rectangle : Printable
{
public void print()
{
Console.WriteLine("rectangle");
}
}
class Test
{
static void Main()
{
Printable p = new Rectangle(); // boxing
p.print();
}
}
The output:
rectangle