gpt4 book ai didi

c# - 结构上的 as 运算符?

转载 作者:IT王子 更新时间:2023-10-29 04:23:54 25 4
gpt4 key购买 nike

我不明白。 As 运算符:

The as operator is used to perform certain types of conversions between compatible reference or nullable types.

那么为什么下面的工作?

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com