gpt4 book ai didi

c# - myData as string、(string) myData 和 Convert.ToString(myData) 之间的区别

转载 作者:行者123 更新时间:2023-11-30 14:03:12 25 4
gpt4 key购买 nike

我有点好奇,想知道使用 as keyword 、Casting 有什么区别Convert.To_______() 函数。

经过少量搜索,我发现 as 运算符仅执行引用转换和装箱转换。还有哪些区别。

我还注意到 as 关键字很少使用,为什么会这样。它们中的任何一个是否比其他有性能优势,或者它们只是框架中的冗余。

最佳答案

(cast) 语法非常重载,可以执行:

  • 装箱/拆箱
  • 引用保留类型转换
  • 在类型上定义的转换运算符
  • 内置原始转换
  • Nullable-of-T 包装/解包

“as”执行其中的一个子集

  • 引用保留类型转换
  • nullable-of-T 的一些有限装箱

但这里的重要特征是它兼作类型关系的无异常测试 - 比异常或反射测试更有效。具体来说,例如:

// is it a list?
IList list = obj as IList
if(list != null) {
// specific code for lists
}

如果您坚信一个对象某物,则首选 (cast),因为它可以作为您信念的断言。一个异常(exception)(在那种情况下)是可取的。

Convert 方法处理不同范围的场景,包括字符串转换(也可通过静态 .Parse 方法等实现)

如果有的话,我用得最少的是 Convert。 (cast) 和“as”语法非常常用。

关于c# - myData as string、(string) myData 和 Convert.ToString(myData) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4537648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com