小编Ped*_*o L的帖子

自动实现属性的 C# 协变返回

如您所知,C# 9.0 (.Net 5) 现在允许协变返回。我需要帮助将其应用于一组具有自动实现属性的类。

我有两个代表金融银行账户和交易的抽象类。我将它们抽象化,因为我将从各种数据源中提取数据,虽然主要属性在所有源中都是通用的,但每个源可能有我想要保留的其他字段。两个类之间存在一对多关系(1 个帐户有许多交易,并且 1 个交易仅属于 1 个帐户)。

public abstract class BankAccount
{
    public string Name { get; set; }
    public IList<Transaction> Transactions { get;  set; } = new List<Transaction>();
    ...
}

public abstract class Transaction
{
    public string Name { get; set; }

    public virtual BankAccount BankAccount { get; set; } // This doesn't work unless I remove set;
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是具体实现的示例

public class PlaidBankAccount : BankAccount
{
    public string PlaidId { get; set; …
Run Code Online (Sandbox Code Playgroud)

oop inheritance covariant-return-types .net-5 c#-9.0

6
推荐指数
1
解决办法
994
查看次数