gpt4 book ai didi

c# - 如果用 || 我怎么写这个, && 更短?

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:52 26 4
gpt4 key购买 nike

如果我有这样的东西会怎样:

if (data == null || (data != null && (data.Count() != 3 || data.IsNotCorrect()))
{
//error...
}

数据== null 然后|| (data != null) 部分有点难看。那是如何在 c# 中解决这个问题?

编辑:对不起!将 data.IsCorrect() 更改为 data.IsNotCorrect()

最佳答案

嗯。 data.Count() != 3 ||数据.IsCorrect()。您的意思是,如果计数为 3,则数据不正确。那么为什么要使用额外的 if 条件而不是在内部进行检查?

if (data == null || data.IsCorrect())
{
//error...
}

更新

似乎混淆了我将验证逻辑移至类内部的意思。所有类都应负责确定在适当的 OOP 中什么是有效状态或无效状态。这称为封装。

自从引入 OR/M、映射器等以来,让调用者而不是类本身决定什么是正确或错误的整个想法越来越多。但事实是,不验证自己的类信息并不是真正正确设计的 OOP 类。它们只是像 DTO 一样的容器。

这样做的危险在于,每个调用代码块都有责任确保 DTO 包含正确且有效的信息。这意味着您的代码中有 n 个地方可以引入错误,而不仅仅是 1

这就是为什么我建议您将所有验证逻辑移到 IsCorrect 或您喜欢的任何名称中。但是,如果您真的想要根据基本的 OOP 原则编写代码,您就不应该让类永远处于不一致状态。这是按照我在下面的博客文章中描述的那样完成的。

http://blog.gauffin.org/2012/06/protect-your-data/

关于c# - 如果用 || 我怎么写这个, && 更短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com