属性为object,字段为int
为什么打印出来value的类型为int,并且下面还必须显示转化为int呢?
参考GPT和自己的思路:
在这个情况下,属性的类型为object,字段的类型为int。当访问属性时,属性的值被装箱到一个object类型的对象中。装箱是将值类型(如int)隐式转换为引用类型(如object)的过程。因此,在打印value的类型时,它实际上是object类型。
但是,当您试图将其赋给一个int类型的变量时,需要将其显式转换为int类型。因为value实际上是int类型,它可以强制转换为int类型。
所以,打印value的类型为int并不准确,实际上它的类型为object。需要进行强制类型转换才能将其表示为int类型的值。
这里发生了一个装箱,因为a只能是int,所以不能保证value一定可以是int,所以需要强制转换
你在 public 设置的是 object ,所以传递进来的就按照 object 类型传递的,即便他确实是个int,但还是按照 object 处理的,这是类型一致性的问题
所以为了数据可用,你需要强制转换
而且,正确的写法应该是 int.tryParse(value,out a)