加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 是否仅限于设置属性?

发布时间:2020-12-15 07:41:11 所属栏目:百科 来源:网络整理
导读:参见英文答案 Do write-only properties have practical applications?14个 我有一些C#代码,喜欢创建具有setter但没有getter的属性.对我而言,这似乎是一种反模式,但我错过了什么? public ListSiteVisitSummary DataSource { set { // crazy logic here }}
参见英文答案 > Do write-only properties have practical applications?14个
我有一些C#代码,喜欢创建具有setter但没有getter的属性.对我而言,这似乎是一种反模式,但我错过了什么?
public List<SiteVisitSummary> DataSource {
    set {
        // crazy logic here 
    }
}

解决方法

我不知道我是否称它为反模式.我认为重要的是要实现的是,示例中的属性本质上是一种伪装成属性的方法.出于这个原因,这是不直观的,我通常会避免它.对我来说,这看起来更自然:
public void SetDataSource(IEnumerable<SiteVisitSummary> dataSource)
{
    // crazy logic here
}

我见过的一个相当合理的情况是只设置属性是当有几个属性组合在一起时,将all设置为单个值是合理的事情(但显然,将all作为一个值没有意义) .例如:

class Polyhedron
{
    public int Height { get; set; }
    public int Width { get; set; }
    public int Depth { get; set; }

    public int AllDimensions
    {
        set { Height = Width = Depth = value; }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读