C#学习笔记-数据的传递(公共变量)以及Dictionary

     看的代码越多,写的代码越多,就越是享受这些字符,终于渐渐懂得了那种传闻中的成就感,特别是自己从看不懂然后一步一步学,一个代码一个代码地敲,最后哪怕只是完成了一个小功能,也都是特别自豪的!这种自豪不用告诉别人,自己心里就是特别满足!

     代码最美的地方就在于所有的不可能都是有可能的......

     显示的功能:

     1.通过选择不同的按钮,传递对应的数据到对应的窗口去;

     

     2.选择其他,可以自己输入新的数据在传递。

     

     传递数据,最主要的就是涉及到了公共变量,开始设定一个公共变量,然后大家都用这个数据,这样传递的时候就变得特别方便了,不会你是一个数据,我是一个数据,大家的数据多了就彻底混乱了。

     这里我只定义了两个公共变量:ChoicedName和NameType,其中NameType用的是Dictionary,因为这里面有:“中文”、“英文”、“韩语”等等数据,放在Dictionary里特别合适。

     插播一句:开始没想过用Dictionary的,开始是遇见enum的难题,上网查的资料,结果后面发现enum适用于静态数据处理和记录,换句话说就是,我这里的“其他名字类型”就没办法自己输入,后来才半路看到了Dictionary的。(另:如果有大神能用enum实现这个功能,麻烦告知,将不胜感激!)

1 class PublicName
2     {
3         public static string  ChoicedName;
4         //键和值,键必须是唯一的,而值不需要唯一的
5         public static Dictionary<int, string> NameType = new Dictionary<int, string>();
6     }

      然后就是进入软件时开始选择的窗口

     (这里是可以优化的,不用每个都显示加一个语言,只是现在懒得修改了)

 1    public partial class ChoiceName : Form
 2     {
 3         Form1 form1 = new Form1();
 4 
 5         public ChoiceName()
 6         {
 7             InitializeComponent();
 8         }
 9 
10         private void button1_Click(object sender, EventArgs e)
11         {
12             PublicName.NameType.Add(1, "中文");
13             PublicName.ChoicedName = "中文";
14             form1.Show();
15             this.Visible = false;
16         }
17 
18         private void button2_Click(object sender, EventArgs e)
19         {
20             PublicName.NameType.Add(2, "英文");
21             PublicName.ChoicedName = "英文";
22             form1.Show();
23             this.Visible = false;
24         }
25 
26         private void button3_Click(object sender, EventArgs e)
27         {
28             PublicName.NameType.Add(3, "韩语");
29             PublicName.ChoicedName = "韩语";
30             form1.Show();
31             this.Visible = false;
32         }
33 
34         private void button4_Click(object sender, EventArgs e)
35         {
36             PublicName.NameType.Add(4, "法语");
37             PublicName.ChoicedName = "法语";
38             form1.Show();
39             this.Visible = false;
40         }
41 
42         private void button5_Click(object sender, EventArgs e)
43         {
44             OtherName oN = new OtherName();
45             oN.Show();
46             this.Visible = false;
47         }
48     }

      如果选择的是“其他”,就需要进入自己输入的窗口界面去。

 1     public partial class OtherName : Form
 2     {
 3         public OtherName()
 4         {
 5             InitializeComponent();
 6         }
 7 
 8         private void button1_Click(object sender, EventArgs e)
 9         {
10             PublicName.ChoicedName = textBox1.Text;
11             PublicName.NameType.Add(5, PublicName.ChoicedName);
12             Form1 ending = new Form1();
13             ending.Show();
14             this.Close();
15         }
16     }

     最后,不管是“中文”还是“其他”,都要传递数据到Form1,这就体现了公共变量的重要性了,刚刚的数据全部都是ChoicedName,所以,form1直接找ChoicedName就好了!

 1   public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6         }
 7 
 8         private void Form1_Load(object sender, EventArgs e)
 9         {
10             comboBox1.Text = PublicName.ChoicedName;
11         }
12 
13         private void button1_Click(object sender, EventArgs e)
14         {
15             Application.Exit();
16         }
17     }
原文地址:https://www.cnblogs.com/Aries-rong/p/5868716.html