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

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...,请问该怎么实现?(不知道说明白没有,呵呵)谢谢!
...全文
33 点赞 收藏 4
写回复
4 条回复
mjjzg 2008年11月03日
[Quote=引用 3 楼 findcaiyzh 的回复:]
可以使用hashtable
[/Quote]
用哈希表吧
回复 点赞
宝_爸 2008年11月03日
可以使用hashtable
回复 点赞
acqy 2008年11月03日
来晚了。哈哈。
反射可以做到。。
回复 点赞
易企加_天马行空 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#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告