作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我不明白。 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
。这里没有引用。
这里肯定没有可空类型。
关于我错的原因有什么解释吗?
最佳答案
将其转换为接口(interface)将在托管堆上创建盒装副本,并返回对盒装副本的引用。盒子实现接口(interface)。
关于c# - 结构上的 as 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176188/
我是一名优秀的程序员,十分优秀!