我很好奇在.NET中转换内建类型的“正确”方法。目前我使用Convert.To[type]([variable])
没有任何空的检查或任何东西。做这个的最好方式是什么?将数据从一种类型转换为另一种类型的“正确”方式是什么?
2
A
回答
3
许多类型都有,你可以使用的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
一个例外是在可空类型上调用ToString(),它也会返回String.Empty。
int? x = null;
Console.WriteLine(x.ToString()); // no exception thrown
因此,在调用ToString时要小心;取决于对象,你可能必须明确地检查null。
2
某些类型如int
(Int32
)具有TryParse
方法。 如果存在这样的方法,我尝试使用它。 否则,我做一个空检查,然后几乎Convert.To
如您所述。
不确定是否有“正确”的方式,就像大多数任务是上下文相关的。
善良,
丹
3
1
这要看情况而定。我最好的建议是研究并熟悉,这样你就可以在你自己做出更好的选择,但你应该先看看以下内容
System.Int32.TryParse()
(也有等效于大多数基本类型)
DateTime.ParseExact()
相关问题
- 1. 如何将一种数据类型转换为另一种数据类型?
- 2. 如何将属性从一种类型转换为另一种?
- 3. 将scala集合从一种类型转换为另一种类型的复杂性是什么?
- 4. 从一个空类型转换为另一种可空类型
- 5. 如何在vb.net中将数组从一种数据类型转换为另一种数据类型?
- 6. 将数据从一种类型转换为另一种类型存在哪些模式?
- 7. 转换为另一种类型的
- 8. AS3将一种类型转换为另一种
- 9. 如何使用反射将一种类型转换为另一种类型?
- 10. 通用如何将一种类型的数据转换为另一种类型的数据
- 11. 如何将表列转换为另一种数据类型
- 12. 从表达式的值转换为另一种类型的C#
- 13. 使一种类型成为一种类型或另一种类型
- 14. 类型不匹配无法一种类型转换为另一种
- 15. nvarchar异常 - 在将数据从一种数据类型转换为另一种数据时,数据被截断
- 16. 将通用类型转换为另一种通用类型扩展方法
- 17. 将一种类型的树结构转换为另一种类型的设计模式?
- 18. 如何将通用数组转换为另一种类型?
- 19. 为什么我的参数假设是另一种类型的?
- 20. 将一种类型的列表转换为使用推土机的另一种类型的数组
- 21. 如何在ColdFusion ORM中将实体从一种类型转换为另一种类型?
- 22. 在EntityFramework迁移过程中将现有值从一种类型转换为另一种类型?
- 23. 如何将一种类型转换为与包名相同的多种类型?
- 24. 将电感值转换为另一种类型的电感值
- 25. 更清洁的方式将集合转换为另一种类型?
- 26. 我该如何隐式地将我的类转换为另一种类型?
- 27. 将一种类型的列表转换为另一种类型的RXJava? (等效的Javascript地图)
- 28. 在通用方法中将泛型转换为另一种类型
- 29. 将一种类型的列表转换为C#3.5中另一种类型的列表
- 30. RavenDB:将文档属性转换为另一种类型
我最喜欢的是当我看到这样的代码:string test =“123”; txtBox.Text = test.ToString();大声笑 – 2009-10-09 06:09:08