• 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     }
  • 相关阅读:
    Search Insert Position
    Sum Root to Leaf Numbers
    String to Integer (atoi)
    Populating Next Right Pointers in Each Node
    Triangle
    Pascal's Triangle II
    Longest Consecutive Sequence
    属性透明度
    ul的列表符号在IE6下显示不全
    table的属性border-collapse 设置边框是否合并
  • 原文地址:https://www.cnblogs.com/Aries-rong/p/5868716.html
Copyright © 2020-2023  润新知