gpt4 book ai didi

c# - 有没有办法在构造函数中初始化 EII 属性?

转载 作者:行者123 更新时间:2023-12-04 08:40:31 26 4
gpt4 key购买 nike

让我们从 MS 页面的代码开始:

interface ILeft
{
int P { get;}
}
interface IRight
{
int P();
}

class Middle : ILeft, IRight
{
public int P() { return 0; }
int ILeft.P { get { return 0; } }
}
我想更改 Middle以这种方式,EII 属性一旦被初始化,如下所示:
class Middle : ILeft, IRight
{
public int P() { return 0; }
int ILeft.P { get; }

Middle()
{
ILeft.P = 0;
}
}
上面的代码无法编译,因此我的问题——是否有 语法 这样做?
我在问语法,因为蛮力方式是声明私有(private)字段并重定向 ILeft.P getter 从中返回数据。

最佳答案

我认为除了您建议的使用支持字段而不是自动属性的方法之外,唯一的其他可能性是使用属性初始值设定项语法,例如:

int ILeft.P { get; } = 0;
当然,您不能基于传递给构造函数的参数进行初始化,因此它仅提供有限的额外灵 active 。
(有一个提议将“ primary constructors”添加到 C# 语言中,这可能使基于构造函数参数初始化仅获取显式实现的接口(interface)属性成为可能,但据我所知,它的包含没有时间表用这种语言,所以我不会屏住你的呼吸......)

关于c# - 有没有办法在构造函数中初始化 EII 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64590500/

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