为了账号安全,请及时绑定邮箱和手机立即绑定

Net Core:解决“添加一种方法来打破此属性访问器的递归”

Net Core:解决“添加一种方法来打破此属性访问器的递归”

C#
米琪卡哇伊 2023-09-16 20:17:00
我正在尝试创建一个简单的类。ColumnSort 成员是逗号分隔文本“Car,Book,Food”中的项目列表。ColumnSortList 创建一个列表车书食物C# 和 SonarQube 提到了诸如 Error 之类的项目Get:添加一种方法来打破此属性访问器的递归。Set:在此属性集访问器声明中使用“value”参数我将如何解决这些问题以使警告/错误(在 SonarQube 中)消失?也愿意让代码更高效。注意:columnSortList 纯粹应该是 ColumnSort 字符串的只读计算字段。public class PageModel{    public int Page { get; set; }    public int Limit { get; set; }    public string ColumnSort { get; set; }    public IEnumerable<string> columnSortList    {        get        {            return columnSortList;        }        set        {            if (ColumnSort == null)            {                columnSortList = null;            }            else            {                columnSortList = ColumnSort.Split(',')                             .Select(x => x.Trim())                             .Where(x => !string.IsNullOrWhiteSpace(x))                             .AsEnumerable();            }        }    }
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

如果columnSortList旨在纯粹只读,从 计算ColumnSort,那么您set根本不应该有方法。所有的逻辑都应该get像这样:


public IEnumerable<string> columnSortList

{

    get

    {

        if (ColumnSort == null)

        {

            return Enumerable.Empty<string>();

        }

        else

        {

            return ColumnSort.Split(',')

                             .Select(x => x.Trim())

                             .Where(x => !string.IsNullOrWhiteSpace(x))

                             .AsEnumerable();

        }

    }

}


查看完整回答
反对 回复 2023-09-16
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

你的 getter 正在返回自身,这是你无法做到的,而你的 setter 正在设置自身,这是你也无法做到的。这似乎就是你想要的:


public IEnumerable<string> columnSortList

{

    get

    {

        if (ColumSort == null)

        {

            return new List<string>();

        }

        else

        {

            return ColumnSort.Split(',')

                         .Select(x => x.Trim())

                         .Where(x => !string.IsNullOrWhiteSpace(x))

                         .AsEnumerable();

        }

    }

}


查看完整回答
反对 回复 2023-09-16
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信