Main() 方法的參數

来源:http://www.cnblogs.com/liqingwen/archive/2016/12/22/6209560.html
-Advertisement-
Play Games

通過以下方式之一定義方法,可以將參數發送至 Main 方法。 【備註】若要在 Windows 窗體應用程式中的 Main 方法中啟用命令行參數,必須手動修改 program.cs 中 Main 的簽名。 Windows 窗體設計器生成的代碼創建沒有輸入參數的 Main。 也可以使 用 Environ ...


  通過以下方式之一定義方法,可以將參數發送至 Main 方法。

static int Main(string[] args)

 

static void Main(string[] args)

  【備註】若要在 Windows 窗體應用程式中的 Main 方法中啟用命令行參數,必須手動修改 program.cs 中 Main 的簽名。 Windows 窗體設計器生成的代碼創建沒有輸入參數的 Main。 也可以使 用 Environment.CommandLine 或 Environment.GetCommandLineArgs 從控制台或 Windows 應用程式中的任何位置訪問命令行參數。

 

  Main 方法的參數是表示命令行參數的 String 數組。 一般是通過測試 Length 屬性來確定參數是否存在,例如:

        if (args.Length == 0)
        {
            WriteLine("Hello World.");
            return 1;
        }

  

  還可以使用 Convert 類或 Parse 方法將字元串參數轉換為數值類型。 例如,下麵的語句使用 Parse 方法將 string 轉換為 long 數字:

long num = Int64.Parse(args[0]);  

 

  也可以使用別名為 Int64 的 C# 類型 long

long num = long.Parse(args[0]);  

 

  還可以使用 Convert 類的方法 ToInt64 完成同樣的工作:

long num = Convert.ToInt64(s);  

 

示例

  下麵的示例演示如何在控制台應用程式中使用命令行參數。 應用程式在運行時採用一個參數,將該參數轉換為整數,並計算該數的階乘。 如果沒有提供參數,則應用程式發出一條消息來解釋程式的正確用法。

 public class Functions
    {
        public static long Factorial(int n)
        {
            
            if ((n < 0) || (n > 20))
            {
                return -1;
            }

           
            long tempResult = 1;
            for (int i = 1; i <= n; i++)
            {
                tempResult *= i;
            }
            return tempResult;
        }
    }

    class MainClass
    {
        static int Main(string[] args)
        {
            // Test if input arguments were supplied:
            if (args.Length == 0)
            {
                Console.WriteLine("Please enter a numeric argument.");
                Console.WriteLine("Usage: Factorial <num>");
                return 1;
            }

            int num;
            bool test = int.TryParse(args[0], out num);
            if (test == false)
            {
                Console.WriteLine("Please enter a numeric argument.");
                Console.WriteLine("Usage: Factorial <num>");
                return 1;
            }

            
            long result = Functions.Factorial(num);

           
            if (result == -1)
                Console.WriteLine("Input must be >= 0 and <= 20.");
            else
                Console.WriteLine("The Factorial of {0} is {1}.", num, result);

            return 0;
        }
    }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 扒完了 "字元設備" ,我們來看看平臺匯流排設備,平臺匯流排是Linux中的一種虛擬匯流排,我們知道, 匯流排+設備+驅動 是Linux驅動模型的三大組件,設計這樣的模型就是將驅動代碼和設備信息相分離,對於稍微複雜一點的驅動,都要使用這種結構,我在 ""Linux設備管理(一)_kobject, kset, ...
  • 模式 ESC\Ctrl+c:退出編輯模式 ZZ\wq:命令模式下保存退出 編輯 i:進入編輯模式 I:轉到行首非空字元開始編輯 s:刪除當前字元進入編輯模式 a:從當前字元後開始編輯 A:從當前行末非空字元開始編輯 移動 H J K L:左下上右 0: 數字零,到行頭 ^:到本行第一個不是blank ...
  • 本文由ilanniweb提供友情贊助,首發於爛泥行天下 想要獲得更多的文章,可以關註我的微信ilanniweb 上一篇文章我們介紹了有關conflucence的安裝與破解,這篇文章我們再來介紹下有關jira的相關安裝與破解。 jira是Atlassian公司出品的項目與事務跟蹤工具,被廣泛應用於缺陷... ...
  • 主要是軟體源出現了問題 我做的方式可能比較粗暴 ls -l /etc/yum.repos.d/ /*查看軟體源*/ rm -rf /etc/yum.repos.d/ /*全刪了*/ mkdir /etc/yum.repos.d/ /*新建*/ wget -O /etc/yum.repos.d/Cen ...
  • 源代碼軟體的優點: 獲得最新版,能及時修複bug; 能自行修改和定製; 源代碼打包形式: .tar.gz和.tar.bz2格式居多; 完整性校驗: md5sum校驗工具 確認源代碼編譯環境: 需安裝支持C/C++程式語言的編譯器。 編譯安裝過程: 下載並解壓—>./configure配置(安裝目錄、... ...
  • /****************************************** *效果圖(我不是給這游戲打廣告,只是隨手拿了一張圖而已) *說明:1.圖片是24位或32位bmp圖 2.屏幕是32位屏幕 3.不同的設備,可能設備文件不同 4.需要在root用戶下執行 ************* ...
  • 操作系統是電腦相關專業本科課程中最重要的課程! 操作系統是電腦相關專業本科課程中最重要的課程! 操作系統是電腦相關專業本科課程中最重要的課程! 重要的事情說三遍。大學讀了兩年半了,學習了3,4門硬體課程。我發現在我的大學中,本科硬體課程總體偏理論,旨在構建電腦硬體理論體系。之前彙編,組成原理 ...
  • 我遇到這個問題的時候查找網上都給出一堆高大上的解決辦法, 然而我的錯誤實際上是用戶名的問題, 很多人以為遠程用戶名就一定是鎖屏狀態下的登錄名, 其實不是,跟自己設置有關,所以首先應該檢查遠程用戶名是否輸入正確。 查看方式:被遠程電腦→win+Break→遠程設置→選擇用戶(在保證如下圖所示選擇的前提 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...