c# - 有没有比在构造函数中作为参数发送更好的方法来设置大量必需的属性?

标签 c#

我有一个类,为了完成它的工作需要设置 8 个不同的属性值。 我想确保在尝试执行方法之前设置了所有 8 个属性。 我目前已经通过构造函数传入并设置了所有参数。 有更好的方法吗?

最佳答案

您可以允许在不指定所有属性值的情况下创建对象,然后如果在对象状态对于要执行的方法调用有效之前调用该方法,则该方法将抛出 InvalidOperationException,这在这种情况意味着所有 8 个属性都将具有有效值。

这样您就可以为消费者提供更多的灵 active 。它可以在某个时刻创建一个新实例,在另一个时刻设置它的属性,然后才调用该方法。这是一个通过 .NET 代码库使用的“模式”,开发人员已经使用了它。


更新:

如果您要添加其他不需要初始化完整属性集的方法,这也会简化事情。是的,我们可以使用新的一组属性添加另一个构造函数重载,但是如果我们有 2 个方法都需要初始化相同类型的一个属性怎么办?这无法通过使用构造函数重载来解决。

关于c# - 有没有比在构造函数中作为参数发送更好的方法来设置大量必需的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2730966/

相关文章:

c# - 创建一个独立的 .exe 文件

c# - 如何根据类型忽略属性

c# - 如何在 MS Graph API 中组合 NOT 过滤器

c# - 为什么在 C# 中使用简单属性而不是字段?

c# - StreamReader 问题 - 未知文件编码(西方 ISO 88591)

c# - Entity Framework 无法识别的唯一键

c# - System.Diagnostic 是否通过查询 WMI 或其他方式获取其数据?

c# - 随机方向,没有重复..(错误描述)

c# - 下载数千个网页的最有效方法

c# - 如何在 Visual Studio 的 R# 单元测试 session 窗口中通过单元测试输出彩色文本?