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

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...,请问该怎么实现?(不知道说明白没有,呵呵)谢谢!
...全文
59 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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;}
}
...
}
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2008-11-03 12:11
社区公告

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