c# - 将数据从一种类型转换为另一种类型的 "right"方法是什么?

标签 c# .net

我很好奇在 .NET 中转换内置类型的“正确”方法是什么。目前我使用 Convert.To[type]([variable]) 没有任何空检查或任何东西。执行此操作的最佳方法是什么?

最佳答案

许多类型都有一个您可以使用的 TryParse 方法。例如:

string input = null;
bool result;
Boolean.TryParse(input, out result);
// result ...

以上是有效的,当要解析的输入为空时不会抛出异常。

当谈到将项目转换为字符串时,您几乎总是可以依赖于对对象调用 ToString() 方法。但是,在空对象上调用它会引发异常。

StringBuilder sb = new StringBuilder();
Console.WriteLine(sb.ToString()); // valid, returns String.Empty
StringBuilder sb = null;
Console.WriteLine(sb.ToString()); // invalid, throws a NullReferenceException

一个异常(exception)是在可空类型上调用 ToString(),这也会返回 String.Empty。

int? x = null;
Console.WriteLine(x.ToString()); // no exception thrown

因此,调用 ToString 时要小心;根据对象的不同,您可能必须显式检查 null。

关于c# - 将数据从一种类型转换为另一种类型的 "right"方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541908/

相关文章:

C# WPF 使工具栏在工具栏托盘内右对齐

C# - Microsoft.Office.Interop.Excel.Sheets 到 Microsoft.Office.Interop.Excel.Worksheet[]

c# - 访问 List<List<string>> 的元素

c# - 哎呀,这个作业里发生了什么

c# - 从 Entity Framework 连接字符串创建 DataContext?

c# - 通过右键单击任务栏可以防止WinForms中的死锁

.net - 多进程 C# 应用程序(如 Google Chrome)的示例

c# - 添加重复数字时,哪个数字字典集合会重新排序项目?

c# - 为什么使用空 lambda 函数注册到事件会导致内存中的强引用?

C# 互操作格式验证列表