gpt4 book ai didi

c# - 如何从另一个属性中获取属性值?

转载 作者:行者123 更新时间:2023-11-30 15:52:14 30 4
gpt4 key购买 nike

我有以下界面:

public interface IReport
{
int ReportId {get; set;}
}

我有一个具有标识列属性的实体:

public int PaymentReportId {get; set;}

我需要PaymentReport来实现IReport

在我的 PaymentReport.cs 中,我做了:

public int PaymentReportId {get; set;}

public int ReportId {
get => PaymentReportId;
set {} //no need to ever set this;
}

否则编译器会提示没有实现 setter。

有没有更简洁的方法来做到这一点?

最佳答案

如果您尝试遵守 SOLID,则存在称为接口(interface)隔离的原则。

The interface-segregation principle (ISP) states that no client should be forced to depend on methods it does not use.

您的方法显然违反了原则,因为 PaymentReport 类确实具有本质上不需要的属性 setter 。


考虑将 IReport 拆分为 IReportReadIReportWrite 并仅实现必要的部分。

public interface IReportRead
{
int ReportId { get; }
}

public interface IReportWrite
{
int ReportId { set; }
}

public class PaymentReport : IReportRead {//...}

这样你就有了清晰的抽象,并且不会污染实现。

关于c# - 如何从另一个属性中获取属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55039188/

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