C#中,一个对象的属性在Vs2017环境里能看到值,但是用代码取出来就变成了null 5C

图片说明
从图中可以看出,field.FieldValue的值是“李四”,但是代码
object o = field.FieldValue;取出来的值是null,o=null!这是怎么回事????

说一下具体情况:
TableField类继承了UserControl,TableField生成实例的时候,FieldValue属性和另一个类的属性绑定在了一起,代码如下:

 TableField field =new TableField();
 field.DataBindings.Add("FieldValue", someObject, "Value", true,
                                    DataSourceUpdateMode.OnPropertyChanged);

再给someObject.Value赋值:someObject.Value=“李四”;之后,field.FieldValue就出现了上述现象

5个回答

objcect是一个对象类型,你监测的是TableField.FieldValue的值,这是类中的一个字段;取值用String

sinat_36035248
sinat_36035248 回复qq_27964731: 你的意思是object不能保存string或者int型的值?
一年多之前 回复
qq_27964731
大圣猿 你要去继承了object类型的猴子尾巴,你就只能用猴子尾巴对应类型去接收
一年多之前 回复
qq_27964731
大圣猿 回复sinat_36035248: 你取的是一个,类比: object 动物, 猴子继承动物类型,但是你不能值把猴子尾巴取下来给object说这是动物
一年多之前 回复
sinat_36035248
sinat_36035248 回复qq_27964731: object FieldVale {get;set;}这个是属性的定义,我没说清楚
一年多之前 回复
qq_27964731
大圣猿 回复sinat_36035248: 你没理解对象和属性的区别,对象是一个实体,属性是一种类型字段
一年多之前 回复
sinat_36035248
sinat_36035248 C#里object()是所有东西的父类型,包括string
一年多之前 回复

要么用string,要么用var 去接受。

需要显示的时候使用o.ToString();

应该用var 来定义变量

直接给个string类型的参数不就可以了?
String temValue=field.FieldValue;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问