亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

淺析C#中的Main(String[] args)參數輸入問題

2020-01-24 02:53:57
字體:
來源:轉載
供稿:網友

指定相關的測試代碼

首先,寫一個用于測試的關于Main(String[] args)參數輸入有關的代碼類,如下:

復制代碼 代碼如下:

using System;

public class Hello
{
    public static void Main(String[] args)
    {
        switch (args[0])
        {
            case "老板":
                Console.WriteLine("早上好!我們隨時準備為您效勞!");
                break;
            case "雇員":
                Console.WriteLine("早上好!你可以開始工作了!");
                break;
            default:
                Console.WriteLine("早上好!祝你好運!");

                break;
        }
        Console.WriteLine("args[1]的值為:"+args[1]);
    }
}


測試運行
現在,如果直接運行,得到的結果將是一個 "索引超出了數組界限"的錯誤。為什么呢?因為這個時候String[] args并無任何內容,也就是說是一個空的數組,那么你引用args[0]當然會導致一個越界的錯誤。

圖:直接運行導致的錯誤

如何在將args[0]的參數傳入

現在,怎么樣來將參數傳入,達到我們的目的呢?可以有2種方法:

1. 在運行之前將我們的參數設定,以便傳入。在"解決方案"窗口中,右鍵你的項目名,選擇 "屬性",在彈出的新窗口中選擇 "調試" ->"啟動選項"->"命令行參數" 中,輸入你要傳入的string參數值。(多個參數之間用空格隔開)

2. 將我們寫好的測試代碼保存,例如:Program.cs。 然后在SDK中編譯(csc Program.cs) 注意路徑。得到一個Program.exe的文件(同目錄下),然后我們可以在SDK傳入args參數了,方法是:在SDK中輸入我們編譯好的文件并連參數一起傳入:Program.exe 老板 早上好 。得到的信息是:

早上好!我們隨時準備為您效勞!
args[1]的值為:早上好

注意
1. 如果傳入多個參數,一定要用空格隔開,不能使用逗號。格式是:Program.exe 參數1 參數2 ...。
2. 參數的個數要與你代碼中出現的參數個數保持一致,否則會出現"索引超出數組界限"的異常。

圖:先編譯,然后將參數傳入

至此就已經成功了?。?!

問題:怎樣在程序中設定args[]的值呢?args[]不能直接用args[0]="hello"的形式訪問,也不能用args[0]=new String()的方式構造,那就只有使用傳遞了!

下面的程序可以直接運行能夠成功,但如果去除捕捉異常的try塊,還是會出現越界問題。仔細思考try塊的作用可以讓你對main參數傳遞有更深入的了解。

復制代碼 代碼如下:

using System;

public class Hello
{
    static int i = 0;
    static void print()
    {
        i++;
        if (i == 1)
        {
            string[] S ={ "老板" };
            Main(S);
        }
        else
        {
            return;
        }
    }
    static void Main(string[] args)
    {
        print();
        try
        {
            switch (args[0])
            {
                case "老板":
                    Console.WriteLine("早上好!我們隨時準備為您效勞!");
                    break;

                case "雇員":
                    Console.WriteLine("早上好!你可以開始工作了!");
                    break;
                default:
                    Console.WriteLine("早上好!祝你好運!");
                    break;
            }
        }
        catch
        {
            Console.WriteLine("運行完畢,finish");
            Console.ReadKey();
        }
    }
}


分析此程序

首先假設把捕捉異常try塊去除. 在沒有try塊的情況下,執行順序從Main()入口,調用print(),在print()中聲明S(S是一個局部變量,僅在print中有效),然后調用Main(S),傳入S執行Switch,對于args[0],打印出"早上好!我們隨時準備為您效勞!",print()調用完成(此時S生命周期結束). 返回到Main()繼續執行,到switch時,由于string屬于傳遞引用,而此時S已經消亡,arg[0]為空,出現"索引超出了數組界限"異常的報錯.

從上可以看出,實際上switch塊要執行兩次,前一次在一個函數調用內執行,傳入args[0]的值,而第二次由于S的消亡,導致args[0]為空.出現"索引超出了數組界限"異常. 那么,加上捕捉異常try塊的原因就很明顯了, 那就是阻止switch塊的第二次運行直接進入catch, 防止args[0]在沒有值的情況下被使用.

此程序可以被擴展,注意關鍵字static起到的作用。反復演練此程序,不斷去破壞和加固它,會感覺受益良多。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品老女人精品视频| 久久久久久久久久久人体| 亚洲www永久成人夜色| 91久久久久久| 欧美成人精品不卡视频在线观看| 亚洲国产精品va| 日韩欧美一区视频| 国产成人亚洲综合| 不卡av电影在线观看| 精品一区二区三区三区| 亚洲精品久久久久久久久久久| 久久精品久久久久久| 国产不卡在线观看| 亚洲精品久久久一区二区三区| 91美女福利视频高清| 北条麻妃在线一区二区| 国产亚洲视频在线观看| 欧美在线视频a| 亚洲精品日韩丝袜精品| 日韩亚洲一区二区| 亚洲免费成人av电影| 91九色国产社区在线观看| 国内精品小视频在线观看| 精品国产91久久久久久| 91精品国产成人| 精品福利在线视频| 国产精品99久久久久久白浆小说| 欧美激情成人在线视频| 欧美日韩在线影院| 日韩综合视频在线观看| 中文字幕日韩免费视频| 国产精品视频一区二区高潮| 国产亚洲精品激情久久| 国产精品日日做人人爱| 国内精品久久久久影院优| 国产亚洲精品美女久久久久| 最新国产精品拍自在线播放| 日本精品久久中文字幕佐佐木| 亚洲香蕉伊综合在人在线视看| 欧美性一区二区三区| 国产97免费视| 国模gogo一区二区大胆私拍| 日韩视频―中文字幕| 国模视频一区二区| 高清欧美性猛交xxxx黑人猛交| 国产亚洲欧美另类中文| 国产精品av免费在线观看| 亚洲人成网站777色婷婷| 亚洲国模精品私拍| 欧美乱妇高清无乱码| 欧美性xxxxx极品| 欧美日本在线视频中文字字幕| 久久久久亚洲精品国产| 亚洲人av在线影院| 日韩精品视频在线观看免费| 欧美激情视频一区| 日本高清不卡在线| 国产精品爽黄69天堂a| 亚洲欧美国产高清va在线播| 欧美日韩色婷婷| 91色p视频在线| 久久久噜噜噜久久中文字免| 国产精品视频免费观看www| 日韩精品亚洲视频| 久久精品国产久精国产一老狼| 亚洲v日韩v综合v精品v| 久久久久久久久久久久久久久久久久av| 久久综合伊人77777| 亚洲美女在线视频| 欧美性猛xxx| 欧美性猛交xxxx富婆| 亚洲午夜精品视频| 欧洲美女7788成人免费视频| 久久99热精品| 中文字幕亚洲综合久久| 91视频国产高清| 亚洲毛茸茸少妇高潮呻吟| xx视频.9999.com| 日本欧美国产在线| 日本亚洲欧美成人| 亚洲v日韩v综合v精品v| 欧美成人sm免费视频| 91美女高潮出水| 91亚洲国产成人久久精品网站| 国产精品福利观看| 欧美色欧美亚洲高清在线视频| 亚洲精品aⅴ中文字幕乱码| 大胆欧美人体视频| 国产精品久久久av| 亚洲资源在线看| 青青精品视频播放| 国产精品久久久久久久久久久久| 精品国产欧美一区二区五十路| 欧美极品少妇xxxxx| 成人性生交xxxxx网站| 久久精品视频va| 91综合免费在线| 久久不射电影网| 日韩精品免费在线视频| 亚洲老头老太hd| 亚洲欧美国产一区二区三区| 亚洲欧美激情精品一区二区| 91成人在线观看国产| 丝袜亚洲另类欧美重口| 国产一区二区三区四区福利| 欧美成人精品一区二区| 色噜噜狠狠色综合网图区| 在线精品91av| 亚洲国产精品久久久久秋霞不卡| 性欧美激情精品| 欧美激情亚洲国产| 亚洲精品欧美日韩专区| 美日韩在线视频| 亚洲视频日韩精品| 国产亚洲精品久久久优势| 91丨九色丨国产在线| 成人性生交大片免费看视频直播| 日韩高清中文字幕| 国产小视频国产精品| 在线亚洲国产精品网| 色综合久久悠悠| 中文字幕欧美专区| 日韩欧美成人网| 色综合久久天天综线观看| 亚洲天堂av在线免费观看| 久久中文字幕视频| 精品成人久久av| 亚洲国产婷婷香蕉久久久久久| 亚洲美女性生活视频| 在线成人免费网站| 亚洲午夜av久久乱码| 欧美日韩国产丝袜美女| 久久免费高清视频| 亚洲精品国产综合区久久久久久久| 96精品久久久久中文字幕| 日韩一区二区精品视频| 日本高清+成人网在线观看| 欧美高清不卡在线| 一个色综合导航| 国内精品一区二区三区| 欧美日韩高清区| 亚洲电影在线看| 日韩中文综合网| 在线观看精品自拍私拍| 亚洲自拍另类欧美丝袜| 成人黄色影片在线| 国产精品久久久久久久久借妻| 日韩经典中文字幕在线观看| 亚洲国产精品久久久久| 亚洲va久久久噜噜噜| 欧美性精品220| 亚洲精品v天堂中文字幕| 97av在线视频免费播放| 色婷婷亚洲mv天堂mv在影片| 日本欧美在线视频| 国产va免费精品高清在线| 亚洲毛片在线观看.| 最新国产精品拍自在线播放| 国产免费一区二区三区在线观看| 国产精品 欧美在线| 国产精品成人av性教育| 亚洲欧美激情一区| 亚洲人成电影网| 日韩av一区在线观看|