通过反射,从Property中取值的问题。

IzualX 2004-11-21 05:52:28
一个简单的Propety

public class UserInfoProperty
{
public UserInfoProperty()
{
}

private string userName;
private string gender;
private string age;

public string UserName
{
get
{
return userName;
}
set
{
this.userName = value;
}
}

public string Gender
{
get
{
return gender;
}
set
{
this.gender = value;
}
}

public string Age
{
get
{
return age;
}
set
{
this.age = value;
}
}
}

我现在碰到的问题是,如果我没有对Property里面的成员赋予初始值
那么在我调用 propertyInfo.GetValue(property,null).ToString();就会报错

但是我有时候又希望判断这个property里面的值是否为null
即类似与这样的判断

If ( UserName == null )

我应该如何来做?
...全文
553 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序的色彩 2005-02-06
  • 打赏
  • 举报
回复
PropertyInfo info = this.GetType().GetProperty("Text");
if(info != null)
{
object val = info.GetValue(this,null);
if(val != null)
MessageBox.Show(val.ToString());
}

ssdjmcj8048 2004-11-21
  • 打赏
  • 举报
回复
propertyInfo.GetValue(property,null).ToString();
应该这样写object prop = propertyInfo.GetValue(property,null);
if (prop != null) prop = prop.ToString();

null.ToString()当然要出错!
nga96 2004-11-21
  • 打赏
  • 举报
回复
最好的习惯,在定义时就初始化,这样就不会出错了,给一个默认值给他就OK啦
IzualX 2004-11-21
  • 打赏
  • 举报
回复
多谢
leonlux 2004-11-21
  • 打赏
  • 举报
回复
string str = (string)propertyInfo.GetValue(property,null);
if (str == null)
//do something
//……
//……
Clayborne 2004-11-21
  • 打赏
  • 举报
回复
private string userName=null;

这样?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧