相关疑难解决方法(0)

结构,接口和拳击

可能重复:
结构实现接口是否安全?

拿这个代码:

interface ISomeInterface
{
    public int SomeProperty { get; }
}

struct SomeStruct : ISomeInterface
{
    int someValue;

    public int SomeProperty { get { return someValue; } }

    public SomeStruct(int value)
    {
        someValue = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我在某个地方这样做:

ISomeInterface someVariable = new SomeStruct(2);
Run Code Online (Sandbox Code Playgroud)

就是SomeStruct在这种情况下,盒装?

c# struct boxing interface value-type

43
推荐指数
3
解决办法
1万
查看次数

接口变量是否具有值类型或引用类型语义?

接口变量是否具有值类型或引用类型语义?

接口按类型实现,这些类型是值类型或引用类型.显然,这两个intstring实现IComparable,并且int是一个值类型,并string为引用类型.但是这个怎么样:

IComparable x = 42;
IComparable y = "Hello, World!";
Run Code Online (Sandbox Code Playgroud)

(我试图回答的问题可能被删除了,因为它询问接口是存储在堆栈还是堆中,而且,正如我们都应该知道的那样,考虑到它们之间的值和引用类型之间的差异更具建设性.语义而不是它们的实现.有关讨论,请参阅Eric Lippert的堆栈是一个实现细节.)

.net c# interface value-type reference-type

10
推荐指数
3
解决办法
7652
查看次数

标签 统计

c# ×2

interface ×2

value-type ×2

.net ×1

boxing ×1

reference-type ×1

struct ×1