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

参见英文答案 > 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; }
    }
}

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么