永发信息网

C# Dictionary问题

答案:2  悬赏:10  手机版
解决时间 2021-02-27 19:19
  • 提问者网友:嗝是迷路的屁
  • 2021-02-26 21:18
我在A窗体中定义了

public Dictionary dt = new Dictionary();
在A窗体给他赋值了,设置断点也能查看到,为什么B窗体使用的时候没有值,求大神
Form1 f1 = new Form1();
BindingSource bs = new BindingSource();

bs.DataSource = f1.dt.Values;
dataGridView1.DataSource = bs;
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-02-26 22:34
看到Form1 f1 = new Form1();这一行没,你声明了一个全新f1,这个f1已经不是你之前的创建的那个A窗体了,f1所有的变量都会初始化,所以自然不存在dt中的值了,解决方法很多,比如说可以是你在A中声明为
public static Dictionary dt = new Dictionary();
这样在其它任何地方,就可以通过Form1.dt来访问
全部回答
  • 1楼网友:酒安江南
  • 2021-02-27 00:05
dictionary完全可以满足你的要求,dictionary是一个泛型的键值集合。 以你的代码为例,你需要取指定的key的value可以这样: boolean ivalue=dic["b"]; 当然为了确保程序的正确性,一般情况下你应该先判断是否存在这个键: dic.containskey("b"); 或者你可以使用dictionary所提供的另一个取值方法: boolean ivalue; dic.trygetvalue("b",out ivalue); 这些方法都是可取的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯