注册 登录
编程论坛 C# 论坛

请教:能否用字符串代表“自定义类型中的成员名称”

venomlk 发布于 2020-07-11 11:30, 3655 次点击
例如:
class abc
{
    public int a;
    public int b;
    public int c;
}
string bl="b";
abc k=new abc{a=1,b=2,c=3};
正常情况下是:messagebox.show(k.b.tostring());
我想实现的类似方式是:k.b中的b,我想用字符串("b")来代替(也就是说,也可以用字符串"c"来代替k.c),不知是否可以,请教下各位老师,谢谢
3 回复
#2
zbjzbj2020-07-12 01:59
int c;c是变量
“c”是常量,是固定不变的
#3
venomlk2020-07-12 09:24
回复 2楼 zbjzbj
多谢版主回复。。
可能是我没有表达清楚,我再举个例子。。呵呵
class1 c=new class1();  
c.a=1;   类里有一个a属性
c.b="a"; 同时还有一个b属性
1、messagebox.show(c.b);   一般情况下需要这么写来获取类中的b属性的值
2、messagebox.show(c.gettype().getproperty("b").getvalue(c, null).tostring());  也能这么写,同时把getproperty("b")改为getproperty("a")也能获取a属于的值
但是第二条语句只能用于“对象中的属性”,不能用于“自定义类型中的成员变量”

我的最终目的是想用一个变量"bl"来代替自定义类型中的成员名称"a"或"b"。。不知我表达清楚没有。。呵呵
#4
venomlk2020-07-15 10:24
已通过其它方法变通解决,多谢大家关注
1