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; }
    }
}

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...