You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已声明公共接口仍出现CS0050不一致可访问性错误如何解决

问题根因

CS0050 错误的核心规则是:public 级别的方法的返回值类型可访问性不能低于方法本身的可访问性。
你定义的ILoanSelector接口为public修饰,接口内的SelectSerials()方法默认继承public访问级别,但方法返回的IEnumerable<LoanData>中的LoanData类没有显式指定访问修饰符。C# 中非嵌套类默认访问级别为internal,可访问性低于public,因此触发报错。
如果报错信息中的LoadData不是笔误,同理是LoadData类的可访问性不足导致的问题。

解决方案

找到LoanData(或报错提到的LoadData)类的定义,为其添加public访问修饰符即可:

// 修改前的默认定义
class LoanData
{
    public long LoanSerial { get; }
    public DateTime CloseDate { get; }

    public LoanData(long loanSerial, DateTime closeDate)
    {
        LoanSerial = loanSerial;
        CloseDate = closeDate;
    }
}

// 修改后
public class LoanData
{
    public long LoanSerial { get; }
    public DateTime CloseDate { get; }

    public LoanData(long loanSerial, DateTime closeDate)
    {
        LoanSerial = loanSerial;
        CloseDate = closeDate;
    }
}

如果后续需要在程序集外访问LoanSelector类,也可以为其添加public修饰符,避免出现同类访问性错误。

额外优化建议

你当前代码中直接通过字符串替换插入LinkedServer参数的写法存在SQL注入风险,建议对LinkedServer的输入值做严格的白名单校验,避免安全隐患。

内容的提问来源于stack exchange,提问作者FulcrumFlex17

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:36:09