每个开发者都有自己的标准。一些开发者喜欢使用
<type>.TryParse()
,一些开发者喜欢使用(type)object;
进行类型转换,还有一些开发者喜欢使用关键字。我注意到了'as'
操作符的问题 - 它不能用于非空值类型之间的转换。我在MSDN上阅读了关于as关键字的文档,他们也将其解释为“您可以使用as运算符在兼容的引用类型或可空类型之间执行某些类型的转换。” 我用以下代码进行了测试: int i = 0;
var k = i as int; //Breaks
int i = 0;
var k = i as int?; //Works
< p>在这种方式中决定使用as
关键字的原因是什么?< /p>
as
的目的是将值转换为特定类型,如果该值适当,并在否则计算为null
值。请注意其中包含了null
。这个描述对于非可空类型根本不起作用。 - Jon Skeetas
操作符永远不会调用转换运算符,而(type)object
可能会这样做。 - Damien_The_Unbeliever