如何设置 属性 显式实现的接口?
How to set property of explicitly implemented interface?
我有这个代码片段:
public interface Imy
{
int X { get; set; }
}
public class MyImpl : Imy
{
private int _x;
int Imy.X
{
get => _x;
set => _x = value;
}
}
class Program
{
static void Main(string[] args)
{
var o = new MyImpl();
o.Imy.X = 3;//error
o.X = 3;//error
}
}
我只想给 X 赋值,但出现 2 个编译错误。如何解决?
显式实现接口时,需要将变量转换为接口:
((Imy)o).X = 3;
o
在您的代码中属于 MyImpl
类型。您需要将其显式转换为 Imy
才能使用接口属性。
或者,您可以将 o
声明为 Imy
:
Imy o = new MyImpl();
o.X = 3;
我有这个代码片段:
public interface Imy
{
int X { get; set; }
}
public class MyImpl : Imy
{
private int _x;
int Imy.X
{
get => _x;
set => _x = value;
}
}
class Program
{
static void Main(string[] args)
{
var o = new MyImpl();
o.Imy.X = 3;//error
o.X = 3;//error
}
}
我只想给 X 赋值,但出现 2 个编译错误。如何解决?
显式实现接口时,需要将变量转换为接口:
((Imy)o).X = 3;
o
在您的代码中属于 MyImpl
类型。您需要将其显式转换为 Imy
才能使用接口属性。
或者,您可以将 o
声明为 Imy
:
Imy o = new MyImpl();
o.X = 3;