我不明白。該As
操作:結構上的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
。這裏有沒有參考。這裏肯定沒有可以爲空的類型。
任何解釋爲什麼我錯了?
順便說一句,像Baby這樣的可變對象會造成一個糟糕的結構。一門課將是一個更明顯的選擇。 –
@MarcGravell當然。但這個問題是爲了更好地瞭解邊緣情景。 :-) –