object obj =123;
string str = obj as string;
这样得到的str的值为null的原因:
首先 虽然123值类型赋值给引用类型,发生了装箱操作,但是 obj 变量的类型对象仍然是 System.Int32 因为C#编译器和clr需要保证C#必须类型的安全,类型安全之一就是类型必须是明确,类型必须是唯一的。as 关键字,只会检测obj 是否兼容 System.String,但是当前的obj 的类型指针是System.Int32,所以既然不兼容,那么只能返回null了

相关文章:

  • 2021-08-15
  • 2021-09-29
  • 2021-12-09
  • 2021-10-28
  • 2021-07-06
  • 2022-12-23
  • 2021-07-15
猜你喜欢
  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
  • 2021-05-03
  • 2021-10-29
  • 2021-09-18
相关资源
相似解决方案