通常在列表窗体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吧它的权限问题又太麻烦,总之就是想不到一个更好的招,特此求教高人指点
有只小跳蛙
拉丁的传说