gpt4 book ai didi

c# - 值类型如何实现接口(interface)类型?

转载 作者:太空狗 更新时间:2023-10-29 18:13:19 26 4
gpt4 key购买 nike

在 C# Language Specification v5.0 的 1.3 节中,它是这样说的:

An Interface type can have as its contents a null reference, a reference to an instance of a class type that implements that interface type, or a reference to a boxed value of a value type that implements that interface type

我对其中三个陈述中的两个没有异议。然而,最后一个让我感到困惑。接口(interface)类型如何保存实现该接口(interface)类型的值类型的装箱值?我以为值类型不能实现接口(interface)类型?还是说装箱的值实现了接口(interface)类型?如果是这样,装箱值如何实现接口(interface)类型?

我在理解所有这些方面遇到了一些困难。

最佳答案

值类型(struct)可以实现接口(interface)。它不能继承另一个struct,但可以实现接口(interface)。

struct (C# Reference)

Structs can implement an interface but they cannot inherit from another struct. For that reason, struct members cannot be declared as protected.

因此,当您有一个实现了 IInterfacestruct 并且您执行以下操作时:

var value = new MyStruct();
var valueAsInterface = (IInterface)value;

valueAsInterface 包含对实现该接口(interface)类型的值类型的装箱值的引用

关于c# - 值类型如何实现接口(interface)类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21344806/

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