求教:关于获得类某个变量值的问题

wanderfox 2008-11-03 12:11:38
我定义了一个类,如A,定义如下

public class A
{
private int val1;
public int Val1
{
get { return val1;}
set { val1 = value;}
}
private string val2;
public string Val2
{
get { return val2;}
set { val2 = value;}
}
...
}

我想通过另外一个类B获得A中某一个变量的值,但是这个变量名不是固定的,比如定义一个string变量key,如果key="Val1"则获取A对象中val1的值,如果key="Val2"则获得A对象val2的值,不用switch ... case...,请问该怎么实现?(不知道说明白没有,呵呵)谢谢!
...全文
89 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjjzg 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 findcaiyzh 的回复:]
可以使用hashtable
[/Quote]
用哈希表吧
宝_爸 2008-11-03
  • 打赏
  • 举报
回复
可以使用hashtable
acqy 2008-11-03
  • 打赏
  • 举报
回复
来晚了。哈哈。
反射可以做到。。
  • 打赏
  • 举报
回复
反射可以做到,但效率不是很高。

A a = new A();
Type t = a.GetType();
string strReturn = (string)t.InvokeMember( "Val1 ",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.GetProperty,
null,
a,
null);

还有一种办法就是对于A的私有属性声明,不用变量,而用一个Dictionary或者hashtable。这样你也能去到值。


public class A
{
private Hashtable _inner = new Hashtable();

public Hashtable InnerData
{
get
{
return _inner;
}
}
public int Val1
{
get { return _inner["Val1"];}
set { inner["Val1"] = value;}
}
private string val2;
public string Val2
{
get { return _inner["Val2"];}
set { inner["Val2"] = value;}
}
...
}

111,093

社区成员

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

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

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