有这么一种情况:
设A是一个类,这个类中有很多的属性,这里假设B---Z都为类A的属性
我们访问时一般都是通过A.B,A.C----A.Z来进行访问。
但实际上我可能在某个时间只会用其它其中一部分,但我自己也不知道在什么时候会访问那些属性或者说给它们附值,如果在一个方法里全部写
A.B=
A.C=
。
。
。
A.Z=
这太麻烦,有什么方法可以将A类的属性使用一个变量来代替,如设一变量string tmp;
访问量使用A.(tmp)的方式来访问,给tmp附值,如果tmp="B",那么现在我们访问的属性A.(tmp)就等价于A.B,请问想达到这种效果应该如何做,刚接确ASP.net,对C#不太熟悉,请高人指点一下,解决马上给分。
设A是一个类,这个类中有很多的属性,这里假设B---Z都为类A的属性
我们访问时一般都是通过A.B,A.C----A.Z来进行访问。
但实际上我可能在某个时间只会用其它其中一部分,但我自己也不知道在什么时候会访问那些属性或者说给它们附值,如果在一个方法里全部写
A.B=
A.C=
。
。
。
A.Z=
这太麻烦,有什么方法可以将A类的属性使用一个变量来代替,如设一变量string tmp;
访问量使用A.(tmp)的方式来访问,给tmp附值,如果tmp="B",那么现在我们访问的属性A.(tmp)就等价于A.B,请问想达到这种效果应该如何做,刚接确ASP.net,对C#不太熟悉,请高人指点一下,解决马上给分。
解决方案 »
- FTP上传后,起始页修改,怎么修改起始页呀。
- 【子窗口问题】如何判断是哪个页面弹出的子窗口?
- DropDownList控件的问题
- 静态方法并发内部变量会不会共享?
- 是不是存储过程中 有返回结果集 就用 ExecuteReader 没有返回结果集就用 ExecuteNoQuery ??
- 关于在.NET里面如何调用MessageBox的问题
- 请问:ASP 如何连接 ODBC 数据源 ,(一定给分)
- GridView中如何实现 数字从小到大排序
- 两个关于自定义控件的问题
- 星级用户进来--关于用户控件问题,我重写了treeview的selectindexchange事件。并且用了事件的回发,可问题多多。希望高手指点!!!
- 郁闷的要死,快急死了,数据全被格式化,有没有办法恢复啊
- include一个html页面怎么写?
你的这个tmp和A.a A.b 中的a和b有什么区别吗? 既然不会用到全部的属性,要用哪一个时就直接给这个赋值就完了 A.a 也好,A.b也好.
class A{
B
C
……
public Object getAttribute(String index){
根据index去B-Z的值返回
}
可以直接向index传B或C之类的,通过switch决定返回谁
那也可以从它继承,然后再加上getAttribute函数啊
根据index去B-Z的值返回}
我使用的是第三方控件ComponetArt Web UI的NavBar控件,我想通过不同的各组数据来达到改变NavBar导航菜单的样式:
这里假设有两个数据源:
Hashtable a = new Hashtable();
a.Add("Hight","100");
a.Add("Width","200");
a.Add("color","red");Hashtable b = new Hashtable();
b.Add("FullExpand","true");
b.Add("Hight","800");public InitNavBar(NavBar navBar1, Hashtable ht)
{
for(i=0; i< ht.count;i++)
{
如果传进来的是a Hashtable,我想动态的指出是给NavBar的Width、Hight、Color属性附值;
如果是b,就对FullExpand、Hight两个属性附值
}
}
但如果是值类型(.net中的简单数据类型都是值类型),则需用到引用关键字ref,例如ref int tmp = A.B;
{
Type t = o.GetType();
System.Reflection.PropertyInfo p = t.GetProperty(str);
object v = p.GetValue( this , null );
return v;
}
但是c#不是很清楚
我觉得要是需要用反射来解决的话,还不如挨个复制代价小
关于反射你看看这里,说的很清晰简单
http://www.delphibbs.com/keylife/iblog_show.asp?xid=13205
object v = p.GetValue( this , null );
========>
object v = p.GetValue( o , null );
.net下反射控制比java简单啊你的程序倒了
人家要set
哈哈