使用字符串转换时,避免 Null 失败的最佳方法是什么?

10
_callReportCode = reader["Call Report Code"].ToString();

我正在尝试处理可能为空的对象调用ToString方法的情况。由于我将在几个变量中使用上述语句,我不想为每个变量创建单独的try/catch块... 那么如何最好地检查字符串是否为空?

其他数据类型的处理方式:

int.TryParse(reader["Account Number"].ToString(), out _accountNumber);
在这段代码中,“reader”指的是SqlDataReader,但对于这个问题并不重要。

https://dev59.com/VWw15IYBdhLWcg3wv-ba#10104842 - user195488
如果您想进行单独测试,try/catch 不是适当的机制 - 在调用 .ToString() 之前,您应该检查 reader['blah'] 是否为 Null。异常永远不应成为您的正常执行流程的一部分,它们昂贵且不是以这种方式使用的(例如,如果您没有仔细思考,很容易捕获错误的东西)。 - Basic
1
无关的,但我很好奇账号应该是一个整数。 - Anthony Pegram
尽管我同意得票最多的答案,但我认为你应该编写一个扩展方法以便在任何地方重用你的代码。我不太喜欢反复使用相同的代码。 - Tarik
11个回答

-1

您可以使用 String.IsNullOrEmpty() 进行检查,以确保它不会为空,或者您可以编写扩展方法,在其不为空时执行某些操作,如果为空则执行另一个/无操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接