已知属性名,如何赋值?

bsdekj2 2010-04-15 05:30:13
asp.net的
我已知一个类的属性名存在string里
如何把他赋值?

比如
我有个string a="name"(动态可变)
一个类里有个name属性。如何给他赋值。

发射遍历?
...全文
252 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
bsdekj2 2010-04-16
  • 打赏
  • 举报
回复
我们老总真BT,写个查询页面居然得用到反射……
感谢大家散分了。
Lucky_6Q 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ff167 的回复:]
用反射
参考
http://blog.csdn.net/tianyu00/archive/2007/05/21/1618723.aspx
[/Quote]封装字段
get
{
return name;
}
set
{
name=value;
}
zs82891879 2010-04-15
  • 打赏
  • 举报
回复
封装字段
get
{
return name;
}
set
{
name=value;
}
shixiujin 2010-04-15
  • 打赏
  • 举报
回复
@8楼:
让您见笑,我收回才刚的代码,是我理解错了.
pi.Name获取的是公共属性名字符串!

支持正确的说法!
wangxianshou 2010-04-15
  • 打赏
  • 举报
回复
8楼讲的不错
shixiujin 2010-04-15
  • 打赏
  • 举报
回复
@lz:
上述代码应该稍加改动:
Student student = new Student(a); //此处不进行初始化如何进行比对?
shixiujin 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 liuyileneal 的回复:]
使用反射

C# code

public class Student
{
private string name;
public string Name
{
get
{
……
[/Quote]
顶起!
AmazingKiss1988 2010-04-15
  • 打赏
  • 举报
回复
实例化类的对象,比如有一个UserInfo类,里面有一个name属性
UserInfo ui=new UserInfo();
ui.name=值;
wuyq11 2010-04-15
  • 打赏
  • 举报
回复
A p=new A();
var info = p.GetType().GetProperty("");
if (info != null)
{
info.SetValue(p, "", null);
}
liuyileneal 2010-04-15
  • 打赏
  • 举报
回复
使用反射

public class Student
{
private string name;
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
}

参考下吧

string a = "Name";
Student s = new Student();
Type t = s.GetType();
PropertyInfo[] p = t.GetProperties();
foreach (PropertyInfo pi in p)
{
if (pi.Name == a)
{
pi.SetValue(s, "Neal", null);
}
}
Console.WriteLine(s.Name);
lpingz 2010-04-15
  • 打赏
  • 举报
回复
反射获得属性列表
hugang001 2010-04-15
  • 打赏
  • 举报
回复
那个Name是动态的?
string a="+NAME+"
那个NAME可以是动态的,比如是XX TABLE里的
你可以绑定了TABLE XX=new table()
XX.NAME放进去
Peter200694013 2010-04-15
  • 打赏
  • 举报
回复
嗯,用反射
wedy_wang 2010-04-15
  • 打赏
  • 举报
回复
肯定得要用反射来设置了。不知道具体问题是什么?
ff167 2010-04-15
  • 打赏
  • 举报
回复
用反射
参考
http://blog.csdn.net/tianyu00/archive/2007/05/21/1618723.aspx
bsdekj2 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ahsun1987 的回复:]

C# code
a = name.ToString();
[/Quote]
你理解错了,是给name属性赋值
Taiyangchen 2010-04-15
  • 打赏
  • 举报
回复
a = name.ToString();

110,571

社区成员

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

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

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