![]() |
1
10
或多或少,是的。考虑一下当你有一个类似数字的物体(比如,一个
很烦人,很难阅读。隐式转换在这里很有用(本例中的另一种方法是操作符重载,但这会导致许多类似的重载)。
我发现最好将隐式转换限制为
非常
类似的类型,例如上面示例中的类似数字的对象:一个
此外,操作符本质上是一个构建器函数,它具有构建器函数优于构造函数的一些常见优点:即,它可以重用缓存的值,而不是总是创建新实例。
想想我的
|
![]() |
2
5
我认为,将隐式转换用于XName这样的简单类型背后的原因之一是调用方法的方便性。 例如,你可以写
提取数据的简单性是LINQ的核心,如果我们必须编写
即使是最简单的查询,对于复杂的查询,LINQ完全值得吗? 这里的另一个重要问题是xname是原子化的。 看到了吗 MSDN
不能在构造函数中提供原子化,但是 定义转换允许您从池中选取相应的对象,并将其作为新实例返回。 |
![]() |
3
3
隐式/显式转换的使用是一个方便的问题,许多编程指南建议您避免使用显式转换
不幸的是,C已经在其他领域(原语和拳击)实现了后者。 |
![]() |
4
2
如果两个类应该可以相互转换,但它们不共享允许自动执行此行为的基类接口,则可以使用转换。隐式转换应该
有可能丢失数据;它们通常被认为是“扩大”转换。例如,转换
我在隐式转换中使用的一个技巧是,在没有其他合理选项的情况下,将不同名称空间中的类相互转换。例如,一个WCF服务返回一个AuthenticationToken对象,我需要将该对象传递给另一个命名空间中的WCF服务。两者都有这个AuthenticationToken对象,持续转换将是一件痛苦的事情。我的解决方案是使用
|
![]() |
5
1
当我打算实际创建一个新实例时,我使用new操作符。 |
![]() |
ElectricRay81 · 从字符串到双精度的转换效果不好 2 年前 |
|
user9591123 · 转换字符串? 6 年前 |
![]() |
duckkkk · C中的类型转换(降级)[关闭] 6 年前 |
![]() |
MDS18 · 在构造函数中将int转换为float 6 年前 |