2018年1月16日 星期二

[C#](note)跳出迴圈之return、break、continue的用法

[C#](note)跳出迴圈之return、break、continue的用法


https://dotblogs.com.tw/mis0800/2015/05/16/151316

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace pt1
{
    static class Program
    {
        /// <summary>
        /// 應用程式的主要進入點。
        /// </summary>
        [STAThread]
        static void Main(string[] args1)
        {
            string[] args = { "w" };
            if (args1.Length != 0)
                args = args1;

            if (args.Length > 0 && args[0] == "w") //這裡進入主程
            {

                #region 主程式

                //用來判斷程式是否已執行
                bool isAppRunning = false;
                Mutex mutex = new System.Threading.Mutex(true, Process.GetCurrentProcess().ProcessName, out isAppRunning);

                //已執行則不鳥
                if (!isAppRunning)
                {
                    //MessageBox.Show("Not work!");
                    //AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
                    ////加入關閉後自動執行的function
                    //Environment.Exit(Environment.ExitCode);
                    ////關閉 觸發CurrentDomain_ProcessExit

                    //《return》直接跳出結束那個函式,不會繼續執行迴圈外的程式
                 
                   return;
                }
     
                MessageBox.Show("return跳出1");
                try
                {
                    MessageBox.Show("return跳出2");
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new Form1());
                    //加入下列這段不然會跳出try,在Main內跑迴圈
                    Environment.Exit(Environment.ExitCode);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
                try
                {
                    Application.Restart();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }

                #endregion
            }

            else //執行程式優先執行AutoUpgrade
            {
                MessageBox.Show("AutoUpgrade");
            }
         
          //  MessageBox.Show("return跳出3");
        }
    }
}

沒有留言:

張貼留言