C#如何重构int.TryParse相关代码以移除冗余布尔变量
重构方案
你可以直接利用int.TryParse的返回值做判断,不需要额外定义布尔变量暂存结果,下面是几种常用的实现方式:
方案1:三元运算符+内联out变量(C# 7.0及以上版本推荐)
直接把TryParse的返回值作为三元判断条件,同时用内联out语法省去临时变量提前声明的步骤,一行即可完成逻辑:
time = int.TryParse(configHelper.GetConfigValue("timeout"), out var parsedTime) ? parsedTime : 70000;
方案2:if判断分支(可读性更高)
如果不喜欢三元运算符的紧凑写法,也可以用if分支直接处理解析失败的场景,连临时解析变量都不需要:
if (!int.TryParse(configHelper.GetConfigValue("timeout"), out time)) { time = 70000; }
方案3:兼容旧版C#(低于7.0版本)
如果你的项目还在使用不支持内联out变量的旧C#版本,只需要提前声明临时变量即可,同样不需要额外布尔变量:
int parsedTime; time = int.TryParse(configHelper.GetConfigValue("timeout"), out parsedTime) ? parsedTime : 70000;
核心思路
原来的布尔变量仅用于暂存TryParse的返回结果,没有其他复用场景,直接把方法返回值作为判断条件即可直接省略这个冗余变量。
内容的提问来源于stack exchange,提问作者Jandi
相关产品推荐
相关产品推荐

