我不明白。As运营商:

那么为什么以下工作?
struct Baby : ILive
{
    public int Foo { get; set; }
    public int Ggg() 
    {
        return Foo;
    }
}
interface ILive
{
    int Ggg();
}
void Main()
{
    ILive i = new Baby(){Foo = 1} as ILive;    // ??????
    Console.Write(i.Ggg());                    // Output: 1
}
- Baby是一个结构,创建它会将值放入- stack. 此处不涉及参考。
- 这里当然没有可为空的类型。 
关于我为什么错的任何解释?