C#中的"全局變量"

C#中沒有了像VB.Net中的全局變量,那麼我們如何實現在不同的頁面間傳遞參數呢?
下面舉例說明如何實現這一功能.
1.新建一個工程HeroClock.
2.在該工程中添加一個窗體ClockSet.
3.在該窗體中定義靜態型字符串變量myTestStr1:
  public static string myTestStr1="";
4.在該窗體的構造函數中對該變量進行賦值,併爲該窗體類添加屬性GetStrValue.

   public Form_ClockSet()
  {
   //
   // Windows 窗體設計器支持所必需的
   //
   InitializeComponent();

   //
   // TODO: 在 InitializeComponent 調用後添加任何構造函數代碼
   //
   myTestStr1="frj nihao";
  }
 public string  GetStrValue
  {
   get
   {
    return myTestStr1;
   }
   set
   {
    myTestStr1=value;
   }

  }                                 
5.在該工程中另添加一個窗體TimeSet.
6.在ClockSet窗體上添加一個button按鈕(name:but_Test);
7.在ClockSet窗體的but_Test_Click 事件中添加以下代碼:
private void but_Test_Click(object sender, System.EventArgs e)
  {
   TimeSet frm1=new TimeSet();
   frm1.ShowDialog(this) ;
   frm1.Close();
 
  }
8.在TimeSet窗體上添加一個button按鈕(name:but_Yes);
9.在ClockSet窗體的but_Yes_Click 事件中添加以下代碼:
private void but_Yes_Click(object sender, System.EventArgs e)
  {
   MessageBox.Show (Form_ClockSet.myTestStr1 );    //直接訪問.  顯示.結果:"frj nihao"

   Form_ClockSet frm2=new Form_ClockSet();
   frm2.GetStrValue ="hlk nihao";                                       //生成一個新的實例對該靜態變量進行操作(修改該靜態變量的值).
   MessageBox.Show (frm2.GetStrValue  );                     //通過該實例的內部成員對它進行訪問  .顯示.結果:"hlk nihao"
 
   MessageBox.Show (Form_ClockSet.myTestStr1 );   //直接訪問. 顯示.結果:"hlk nihao"


  }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章