Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >你喜欢让你把“然后”放在“如果”之前的语言吗?

你喜欢让你把“然后”放在“如果”之前的语言吗?
EN

Stack Overflow用户
提问于 2010-04-29 21:40:37
回答 13查看 471关注 0票数 9

我今天正在阅读我的一些C#代码,发现这一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated) return;

注意,您可以在不滚动的情况下告诉ItemContainerGenerator.Status,它是一个" if“语句,但是很难判断"if”子句是否会在此时返回"true“。

实际上,我应该将“返回”语句本身移到一行中,但它让我想到了允许语句的“然后”部分首先出现的语言。如果C#允许的话,行可能如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated);

这可能有点“争论”,但我想知道人们对这种结构有什么看法。它可能有助于使上面的代码更易读,但也可能是灾难性的。想象一下这段代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return 3 if (x > y);

从逻辑上讲,我们只能返回x> y,因为没有“其他”,但我的一部分看了看,会想,“如果x <= y,我们还返回吗?如果是,我们还返回什么?”

你对“如果之前”的结构有什么看法?它是否存在于你所选择的语言中?你经常用吗?C#会从中受益吗?

EN

回答 13

Stack Overflow用户

发布于 2010-04-29 21:54:28

让我们重新格式化一下,看看:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System.Windows.Controls.Primitives;

...

if (ProgenyList.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated)
{
    return;
}

现在看到返回语句有多难呢?诚然,在这样的情况下,您仍然需要滚动以查看整个情况,但是在IDE中,您不必.部分原因是没有尝试将条件和结果放在同一条线上,而party则是由于using指令。

现有C#语法的好处是文本顺序反映了执行顺序--如果您想知道会发生什么,可以自上而下阅读代码。

就我个人而言,我不喜欢“返回如果.”-我宁愿重新格式化代码的可读性,而不是改变排序。

票数 14
EN

Stack Overflow用户

发布于 2010-04-29 21:45:58

我不喜欢这引起的模棱两可。考虑以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doSomething(x)
if (x > y);
doSomethingElse(y);

它在做什么?是的,编译器可以解决这个问题,但是对于程序员来说,它看起来会很混乱。

票数 10
EN

Stack Overflow用户

发布于 2010-04-29 21:45:54

是。它读起来更好。Ruby将此作为其语法的一部分--术语为“语句修饰符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
irb(main):001:0> puts "Yay Ruby!" if 2 == 2
Yay Ruby!
=> nil
irb(main):002:0> puts "Yay Ruby!" if 2 == 3
=> nil

最后,我要强调的是,你需要“谨慎地使用这个”。红宝石的成语是把它用在一条线上。它可能被滥用--不过我想这属于负责任的开发领域--不要通过设置限制来保护穷人来限制更好的开发人员。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2742518

复制
相关文章
清理垃圾bat代码
rd /s /q %windir%\temp & md %windir%\temp
全栈程序员站长
2022/07/04
1K0
清理垃圾bat代码
/tmp目录清理问题
2019年7月10日 ⋅ 浏览量: 4   
以谁为师
2019/07/11
3.2K0
解决spark日志清理问题
由于采用了sparkstreaming 任务一直再运行导致日志文件暴涨,达到了硬盘的预警,不得已必须指定策略定期删除日志已保证服务器硬盘空间。
用户1217611
2020/11/24
2.2K0
关于清理webgame缓存的问题
直接请求百度首页http://www.baidu.com/,看到所请求的资源都是Cache
meteoric
2018/11/16
2.2K0
【Rust 基础篇】Drop Trait 清理代码
在 Rust 中,Drop trait 是一种特殊的 trait,用于定义在值离开作用域时进行清理操作的行为。通过实现 Drop trait,我们可以自定义类型在销毁时的清理逻辑,例如释放资源或执行必要的操作。
繁依Fanyi
2023/10/12
2100
解决svn清理失败,路径显示乱码问题
点击下载   SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
程序员云帆哥
2022/05/12
2.2K0
解决svn清理失败,路径显示乱码问题
利用正则批量清理Teleport Ultra/Pro冗余代码
Teleport 是一款非常优秀的网站离线浏览工具(即网站整站下载工具),但该软件下载的网页文件里会包含大量冗余代码(如:tppabs),手动去修改工作量很大。
德顺
2019/11/13
9830
只需一串代码,实现清理电脑缓存
任何电脑使用时间过久都会留下垃圾痕迹,及时清理系统垃圾 bat才能确保电脑的顺畅。下面就介绍一下一键清理系统垃圾bat的方法,方便快捷。
小何.
2023/03/03
2.4K0
只需一串代码,实现清理电脑缓存
[PHP] 存储改造中的逻辑和清理遗留的问题
现象:用户读信时,根据路径的哈希结果,访问四台服务器中一台请求文件,这四台缓存机器已经下线,访问不到再去后端存储访问浪费了时间
唯一Chat
2019/09/29
5840
CMI | 关于生物清理以及垃圾清理
关于生物清理 在CMI中有个定时任务的配置文件(schedules.yml) killall: Enabled: true Repeat: true Delay: 3600 Commands: - * - * 我们可在其中添加特殊命令 - actionbar! &#x5C06;&#x5728;30&#x79D2;&#x540E;&#x6E05;&#x7406;&#x751F;&#x7269; - delay 10 - actionbar! &#x5C06;&#x5728;20&#x
BreezeCloud
2022/10/04
1.4K0
清理Xcode
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53992611
用户1451823
2018/09/13
1.1K0
清理Xcode
Linux清理磁盘(定位高占用-->清理)
定位 df -ah可以通过 User% 那一列哪看到个占用多。 进入根目录,查询大文件与目录 cd / du -sh * | sort -n # 查看大小1GB以上的目录并且排序 du -h --max-depth=1 |grep 'G' |sort 迭代执行以上操作,定位到可以删除的大文件,将其删除即可。
bboy枫亭
2021/12/07
3.7K0
问题解决:Ubuntu 磁盘空间占满如何清理
磁盘空间占满了,有两种解决办法:开源节流。这里我讲节流。 一个命令(从根目录开始): du -h --max-depth=1 该命令用于罗列当前目录下一级以内东西大小,转换成普通人能看的。 递归。 找到病灶之后,如果不敢删,百度一下。一般如果是日志啥的但删无妨。 我找到是在 var 下面的 docker,于是百度了一下解决方法: docker system prune -a 使用的时候建议将要保留的镜像打开,不然会全给你清理了。它有给英文提示。
看、未来
2022/05/06
1.2K0
Windows更新清理工具 (winsxs 清理工具)
Windows 更新清理工具是一款效果非常显著的Windows7、Windows8操作系统清理优化工具!经常安装系统的朋友相比有所体会,刚刚安装完成的Win7、Win8其实占的空间并不大,去掉页面文件和休眠文件后,真正的系统只几个G而已,但如果你给系统升级了补丁后,你会发现系统所需要占用的空间直线上升!轻松突破10G的门槛!加上休眠文件和页面文件,本来预留给系统的30G空间马上变得也不富裕了。 究其原因,在于系统目录下的WinSxS目录占用了大量的空间!在我们安装了大量的系统更新后,新的系统文件会替代旧
张善友
2018/01/19
11.8K1
Windows更新清理工具 (winsxs 清理工具)
代码乱码问题
vs studio默认编码使用unicode,qt creator编辑器代码在vs中不识别错误
sofu456
2023/07/10
1330
代码乱码问题
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
Python进阶者
2020/09/30
1K0
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
刘早起
2020/08/20
1.4K0
Windows 10 电脑垃圾清理教程,缓存垃圾清理
Windows 10是目前广泛使用的操作系统之一。由于长时间运行Windows 10电脑,会积累大量临时文件、日志和其他不需要的文件,导致系统变慢并占用磁盘空间。
用户8551789
2023/04/10
3.8K0
Windows 10 电脑垃圾清理教程,缓存垃圾清理
下一个问题,你合理清理内存了吗?
大家好,我是光城,没想到昨日问题留言竟然这么多人,那么这个系列,我也将继续持续下去,今天先来给大家答案,接下来给出一个新问题。
公众号guangcity
2022/04/27
2120
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
小小詹同学
2020/09/08
5080
10行Python代码自动清理电脑内重复文件,解放双手!

相似问题

查找Roslyn默认的可空上下文

25

JBehave空上下文

10

setUserVisibleHint中的空上下文

216

隐藏空上下文菜单

10

异步上下文管理器

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文