我有一段代码:
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
MyImpl
Imy
或者,你可以声明 作为 :
Imy o = new MyImpl(); o.X = 3;