您认为什么更具可读性:?? (运算符)或使用 if

2023-11-29

我有一个方法会收到string,但在我可以使用它之前,我必须将其转换为int。有时可以是null我必须将其值更改为"0"。今天我有:

public void doSomeWork(string value)
{
   int SomeValue = int.Parse(value ?? "0"); //it can throw an exception(i know)
}

我做到了,但我的老板要求我将其重构为:

public void doSomeWork(string value)
{
    if(string.IsNullOrEmpty(value))
        value = "0";
    int SomeValue = int.Parse(value);
}

您认为最好的选择是什么?


为什么不直接使用TryParse()?

public int doSomeWork(string stringValue)
{
    int value;
    int.TryParse(stringValue, out value);

    return value;
}

上面的代码会返回0如果该值不是实际数字。

所以在我看来,我的例子是最具可读性的。我尝试解析 int 并返回它。不使用合并运算符,也不使用字符串方法。此方法还处理解析时可能引发的异常(除非您想要异常......)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您认为什么更具可读性:?? (运算符)或使用 if 的相关文章

  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 为什么 BOOST_FOREACH 不完全等同于手工编码的?

    From 增强文档 http www boost org doc libs 1 48 0 doc html foreach html foreach introduction what is literal boost foreach li
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • gdb 在 docker 上立即退出“进程已完成,退出代码 1”或 lldb“数据包返回错误 8”。另外:如何在 docker 中允许进行 C++ 调试

    这花了我一整天的时间才找到 所以我将其发布以供将来参考 我正在 docker 镜像上开发 C 我正在使用克利翁 我的代码是在调试模式下编译的 并且在运行模式下运行良好 但是当尝试调试时 进程会立即退出 并显示非常丰富的信息 Process
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • 如何检测 C# 中该字典键是否存在?

    我正在使用 Exchange Web 服务托管 API 和联系人数据 我有以下代码 即功能性的 但并不理想 foreach Contact c in contactList string openItemUrl https service
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu

随机推荐

  • 如何将日期时间/时间戳从一个时区转换为另一个时区?

    具体来说 给定我的服务器的时区 系统时间角度 和时区输入 我如何计算系统时间 就好像它处于新时区一样 无论夏令时等 import datetime current time datetime datetime now system time
  • 将 UISearchBar 作为子视图添加到 tableView 标头中

    我正在尝试添加自定义标头UITableView 有一些按钮和一个UISearchBar 问题是 当我尝试使用 searchBar 时 我收到一条消息 setting the first responder view of the table
  • python 3.5更新sqlite3版本

    我已经在 Windows 机器上安装了 python 3 5 3 我通过命令 sqlite3 sqlite version 检查 SQLite 版本 它是版本3 8 11 我的问题是如何将 SQLite 版本更新到 3 26 我不确定是否有
  • 向所有请求添加Where条件EF6

    我的大部分实体 并非全部 有两个属性称为CompanyId and Deleted 如何为所有选择请求自动插入这两个属性 而不是在整个应用程序中的每个查询上手动设置 Example db MyEntity Where me gt me Id
  • Codeigniter/PHP:将数据库查询格式化为数组

    this gt db gt select id user id gt from be users gt where id user id data user individual this gt db gt get 如果这是我的数据库查询
  • REGEXP 与 PDO Mysql

    我正在尝试在 PDO Mysql 中使用 REGEX 但出现问题 function artist list artist global DBH STH DBH gt prepare SELECT songs image artist alb
  • java、反射、内部类、

    您好 我想使用反射获取内部类的对象 但我在其中遇到了一些错误 代码是 package reflaction public class MyReflection public static void main String args thro
  • 遍历 jquery 中的嵌套表单元素

    很抱歉 如果这已经发布了 我一直在寻找无济于事 我只是想知道如何在 jquery 中循环嵌套表单 元素 元素不仅是像输入标签这样的严格表单元素 而且还有其他 html 元素 目前我有这段代码可以做到这一点 arguments i formi
  • Haskell 声明中的感叹号是什么意思?

    当我尝试使用真实的项目来驱动 Haskell 时 我遇到了以下定义 我不明白每个参数前面的感叹号是什么意思 我的书上似乎没有提到它 data MidiMessage MidiMessage Int MidiMessage 这是一个严格的声明
  • 检测 AJAX 何时更改 Web 浏览器中 DIV 中的 HTML

    通过 Web 浏览器加载页面并单击触发 AJAX 脚本的链接后 我需要检测 AJAX java 脚本何时完成将 HTML 更改加载到 div 中 由于运行 AJAX 脚本时不会触发 DocumentCompleted 事件 因此我不知道它何
  • 如何解码这段 PHP 代码?

    我想解码这段代码 我不知道它是什么 只知道它是某种代码 有人能帮助我吗
  • 如何在 EditText 上默认使用数字键盘而不强制输入数字? [复制]

    这个问题在这里已经有答案了 这个问题已经在网上其他地方询问过了 没有结果 Android 有没有办法在聚焦时显示数字软键盘EditText 但仍然允许输入任何文本 我想让用户输入数量 例如 1 kg 2 L 所以只需设置inputType
  • Oracle数据库搜索所有表中的字符串,返回行数据[重复]

    这个问题在这里已经有答案了 我需要在 Oracle 数据库中的所有表中搜索特定字符串 并返回找到该字符串的所有记录 我正在使用 SQL Developer 网上发布了几个非常有用的脚本和存储过程 它们提供了一种搜索整个数据库的方法 并且它们
  • 我可以按任意顺序将中间件应用到应用程序吗?

    在 C ASP NET 中 中间件应用程序的顺序重要吗 以下2个代码片段 public class Startup public void Configure IApplicationBuilder app IHostingEnvironm
  • 删除浏览器默认样式

    有没有办法或者声明如XHTML or HTML4这会删除元素上的默认 CSS 样式吗 Doctype 不用于样式化 有两种重要的方法可以删除所有样式并统一默认外观 标准化 csshttps necolas github io normali
  • C++ 中整数向量的序列化/反序列化

    待完成任务 我正在尝试将整数向量序列化为字符串 以便可以将其存储到文件中 使用的方法是将整数逐字节复制到缓冲区中 为此 我使用了 std copy n 函数 为了反序列化 我反向做了同样的事情 即从缓冲区逐字节复制到整数中 并将这些整数附加
  • C# 中的 PInvoke DLL

    我想将一个结构传递给 C 函数 并编写以下代码 当我运行它时 第一个函数 Foo1正在工作 然后起作用Foo出现异常 你能帮我理解问题是什么吗 C代码 typedef struct int Size char Array TTest dec
  • 使用 for 循环在数据框中创建新列来计算 R 中的值?

    我有两个数据框 df1 和 df2 group c Group 1 Group 2 Group3 Group 1 Group 2 Group3 year c 2000 2000 2000 2015 2015 2015 items c 12
  • 在 JavaScript 中对自定义对象数组进行排序

    假设我有一个 Employee 对象数组 var Employee function fname age this fname fname this age age var employees new Employee Jack 32 ne
  • 您认为什么更具可读性:?? (运算符)或使用 if

    我有一个方法会收到string 但在我可以使用它之前 我必须将其转换为int 有时可以是null我必须将其值更改为 0 今天我有 public void doSomeWork string value int SomeValue int P