为了账号安全,请及时绑定邮箱和手机立即绑定

关于万能传参的问题

关于万能传参的问题

小唯快跑啊 2018-11-01 05:02:19
通常在列表窗体a中单击“添加”按钮打开一个对话框b做新增或修改操作,这时需要从a中传一些参数给b,于是我们使用以下方法:  在b.cs中写一个Hashtable的属性args,然后定义一个全局的枚举argName。然后在a中这样传参:  Form b = new Form();  b.args[argName.单位名] = "单位1";  然后在b.cs中这样取值:string unitname = args[argName.单位名] as string。  现在的问题是这个args[argName.单位名]是object类型的,每次取值还得类型转换,如果为null,转换时还得判断是否异常,挺麻烦的,而且我也不喜欢多一个全局的枚举项作键名,有没有更好的办法可以实现类似的万能传参,就像js对象一样最好,只要有一个宿主,可以随时随地往宿主里面添加对象,然后直接给该对象赋值。  另外,我也试过Directonary<K,V>,问题是这玩意实例化时必须指明V的类型,所以不能用它,用Struct吧它的权限问题又太麻烦,总之就是想不到一个更好的招,特此求教高人指点
查看完整描述

3 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

很遗憾地告诉你,作为一门强类型的语言,C#中没有你想象中那么"美好"的东西

查看完整回答
反对 回复 2018-11-05
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

Form b = new Form();

b.Controls.add(***)


查看完整回答
反对 回复 2018-11-05
  • 3 回答
  • 0 关注
  • 481 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信