首页 新闻 赞助 找找看

可能是关于组件依赖的问题

0
悬赏园豆:30 [已解决问题] 解决于 2008-08-30 11:18

我在设计一个组件,这个组件需要传入一个参数比如叫string dbname,从外界赋给这个参数的变量目前是一个静态变量,很可能在它将值赋给组件的参数后,静态变量的值又变化了,那么在组件内获得的值就不是最先的值了,我又不想在组件内直接操作静态变量,这样这个组件就依赖这个具体的变量了。

我的问题是如何能让组件内部使用的值,获得的是最新的值,大家来说说,自我感觉好像没有解

lexus的主页 lexus | 初学一级 | 园豆:0
提问于:2008-08-30 09:10
< >
分享
最佳答案
0
直接依赖非只读的静态变量是不合理的设计,看你的情况也不是很理解具体问题 如果你是想要组件内的值随着静态变量的改变而改变,那么你应该传静态变量的引用进去,此时所有的值类型和string是无效的,因此你应该这么来 先写一个类 class Wrapper { public string DbName = "xxx"; } 然后静态变量是Wrapper类的对象,比如你保持静态变量的类叫SApp static class SApp { public static Wrapper W = new Wrapper(); } 然后这个组件依赖一个Wrapper类的对象,而不是直接依赖一个string,比如组件叫Comp,就这样 class Comp { public Wrapper DbNameWrapper { get; set; } } 此时因为string被Wrapper包在了里面,所以外界需要改变这个dbname的时候,直接这么写 SApp.W.DbName = "yyy"; 此时组件中用this.DbNameWrapper.DbName获取你需要的string,这样就达到了外界修改后组件中实时更新了
Gray Zhang | 专家六级 |园豆:17610 | 2008-08-30 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册