如何用变量代替类里面的属性名称

ex3206 2009-12-12 02:43:41
有一个类

public class InitData
{
public double whosg { get; set; }
public double whotz { get; set; }
public double whotw { get; set; }
}

InitData ida = new InitData();

一般情况下,用 ida.whosg = ** 即可完成赋值和读取

但现在我希望定义一个 变量

string sfield

如何根据 sfield 的不同值,得到或者给 ida 里某个属性名字 = sfield 变量的

如 : sfield = "whosz";

那么就 和 ida.whosz 是一样的呢?
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mngzilin 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ex3206 的回复:]
引用 1 楼 mngzilin 的回复:
这要做映射,建立索引表。而且效果不好


在页面上有 30多个 commbox,这样做是为了使用一个统一的 SelectionChanged(object sender, SelectionChangedEventArgs e) 事件,有其他好的方法吗? 谢谢
[/Quote]

你的30多个commbox使用同一个SelectionChanged事件,通过(commbox)sender.属性名 来识别commbox控件
ex3206 2009-12-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mngzilin 的回复:]
这要做映射,建立索引表。而且效果不好
[/Quote]

在页面上有 30多个 commbox,这样做是为了使用一个统一的 SelectionChanged(object sender, SelectionChangedEventArgs e) 事件,有其他好的方法吗? 谢谢
ex3206 2009-12-12
  • 打赏
  • 举报
回复
可以通过反射的方法得到属性名称,但如何赋值呢?

Type t = this.SExamInfo.GetType();//获得该类的Type

//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
foreach (System.Reflection.PropertyInfo pi in t.GetProperties())
{
object value1 = pi.GetValue(this.SExamInfo, null);//用pi.GetValue获得值
string name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
//获得属性的类型,进行判断然后进行以后的操作,例如判断获得的属性是整数
if ((name == fieldname) && (value1.GetType() == typeof(string)))
{
//如何赋值???????????

}
}
mngzilin 2009-12-12
  • 打赏
  • 举报
回复
这要做映射,建立索引表。而且效果不好

110,539

社区成员

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

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

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