欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET中函數(shù)Main的使用技巧

 更新時(shí)間:2016年10月12日 08:46:00   作者:msay  
任何語(yǔ)言開(kāi)發(fā)出來(lái)的程序,都會(huì)有一個(gè)程序入口函數(shù),可能每個(gè)語(yǔ)言所使用的程序入口函數(shù)名稱不一樣,但是它們的作用都是一樣的,都是被操作系統(tǒng)去調(diào)用。那么本文主要總結(jié).NET中的程序入口函數(shù)Main使用的小技巧。

引言

最近在使用pandoc這個(gè)文檔轉(zhuǎn)換軟件,能夠?qū)Ω鞣N文檔進(jìn)行完美的轉(zhuǎn)換,比如從markdown文件轉(zhuǎn)為doc,ppt,tex,odt等等各種,感興趣的可以從Pandoc下載,對(duì)于pandoc的的文檔轉(zhuǎn)換,都是使用cmd中的命令來(lái)進(jìn)行操作的。現(xiàn)在我需要把d盤(pán)的1123.md文件轉(zhuǎn)換為docx文檔,我只需要在cmd中輸入下面的命令即可實(shí)現(xiàn)。

當(dāng)然在安裝pandoc的時(shí)候就已經(jīng)把pandoc添加到環(huán)境變量中了,現(xiàn)在我們來(lái)分析一下這個(gè)命令pandoc 1123.md -o 1123.doc,將這個(gè)命令分為四部分,以空格進(jìn)行分隔。pandoc為程序名稱,后面的1123.md、-0、1123.doc分別是傳入這個(gè)程序main函數(shù)中的3個(gè)參數(shù)。這種使用cmd命令來(lái)運(yùn)行程序達(dá)到自己目的對(duì)于我來(lái)說(shuō)是比較好奇的,下面我就利用.NET來(lái)實(shí)現(xiàn)這種模式。

想要實(shí)現(xiàn)上面的這種效果,那么就不得的了解.NET中Main函數(shù)的使用了。首先,我們要知道.NET中程序Main是如何聲明的。

1 Main函數(shù)的聲明

.NET中的Main的函數(shù)聲明,并沒(méi)有強(qiáng)調(diào)必須要以某種固定的格式進(jìn)行聲明,下面這三種方式進(jìn)行聲明都是可以的。

//no.1
static void Main(string[] args)
{
 Console.WriteLine("Hello World");
 Console.ReadKey();
}
//no.2
static void Main()
{
 Console.WriteLine("Hello World");
 Console.ReadKey();
}
//no.3
static int Main(string[] args)
{
 Console.WriteLine("Hello World");
 Console.ReadKey();
 return 1;
}

no.1是帶參數(shù)無(wú)返回值,no.2是不帶參數(shù)無(wú)返回值,no.3是帶參有返回值的,不管哪種聲明方式,.NET都是允許的,這一點(diǎn)不像Java中的Main函數(shù)聲明,Java中的Main函數(shù)聲明,必須要是帶參數(shù)的,而且參數(shù)的必須要是String[] args,連args這個(gè)參數(shù)名稱都要一致。

但要注意的是,Main函數(shù)的函數(shù)名必須是大寫(xiě)開(kāi)頭的,即Main可以,而main不可以。我們需要再cmd中根據(jù)命令中傳入的參數(shù)來(lái)執(zhí)行程序不同的功能,因此在這里我們選擇no.1這種聲明形式。

2 使用帶參數(shù)的Main函數(shù)

下面使用代碼實(shí)現(xiàn)處理Program filename -o filename這種命令參數(shù)。代碼如下:

static void Main(string[] args)
{
 if (args.Length == 3)
 {
  //第二個(gè)參數(shù)是-o,則把第一個(gè)參數(shù)的文檔轉(zhuǎn)為第三個(gè)參數(shù)的文檔
  if (args[1] == "-o")
  {
   if (File.Exists(args[0]))
   {
    if (Check(args[2]))
    {
     //進(jìn)行轉(zhuǎn)換的邏輯
     Console.WriteLine("{0}—》{1}轉(zhuǎn)換成功",args[0],args[2]);
    }
    else
    {
     Console.WriteLine(args[1] + "不合法");
    }
   }
   else
   {
    Console.WriteLine(args[0]+"不存在");
   }
  }
 }
 Console.ReadKey();
}

上述代碼就能夠?qū)崿F(xiàn)Program filename -o filename命令的處理。首先程序判斷傳入進(jìn)來(lái)的參數(shù)是不是三個(gè),如果是三個(gè),再判斷第二個(gè)參數(shù)是不是文檔轉(zhuǎn)換命令-o,如果是轉(zhuǎn)換命令就將第一個(gè)參數(shù)的文檔轉(zhuǎn)為第三個(gè)參數(shù)的文檔。

下面測(cè)試一下程序,將程序的可執(zhí)行文件復(fù)制到d盤(pán)和轉(zhuǎn)換文檔同一目錄并改名為MainUsage.exe。在cmd中輸入MainUsage 1123.md -o 1123.docx,效果如下。

注意:cmd中傳入的參數(shù)是以空格進(jìn)行分隔的.

3 總結(jié)
如果想要為外面的程序提供本程序的一些公開(kāi)API接口,那么就需要定義參數(shù)輸入的規(guī)定,然后在Main函數(shù)按照這一規(guī)定,接受并處理傳入進(jìn)來(lái)的參數(shù),并給外界返回結(jié)果。通過(guò)這種方式,外界的程序可以批量的使用該程序提供的某些功能。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • asp.net中穿透Session 0 隔離(二)

    asp.net中穿透Session 0 隔離(二)

    上一篇我們已經(jīng)對(duì)Session 0 隔離有了進(jìn)一步認(rèn)識(shí),如果在開(kāi)發(fā)過(guò)程中確實(shí)需要服務(wù)與桌面用戶進(jìn)行交互,可以通過(guò)遠(yuǎn)程桌面服務(wù)的API 繞過(guò)Session 0 的隔離完成交互操作
    2012-11-11
  • .Net Core3.0 配置Configuration的實(shí)現(xiàn)

    .Net Core3.0 配置Configuration的實(shí)現(xiàn)

    這篇文章主要介紹了.Net Core3.0 配置Configuration的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • ASP.NET數(shù)據(jù)庫(kù)操作類實(shí)例

    ASP.NET數(shù)據(jù)庫(kù)操作類實(shí)例

    這篇文章主要介紹了ASP.NET數(shù)據(jù)庫(kù)操作類,結(jié)合實(shí)例形式分析了asp.net基本的數(shù)據(jù)庫(kù)增刪改查操作封裝相關(guān)技巧,需要的朋友可以參考下
    2017-03-03
  • .NET中的 類型轉(zhuǎn)換深入理解

    .NET中的 類型轉(zhuǎn)換深入理解

    CLR最重要的一個(gè)特性就是類型安全,CLR在運(yùn)行時(shí)總能知道一個(gè)對(duì)象的類型,我們也可以通過(guò)調(diào)用GetType()方法,來(lái)得到對(duì)象的準(zhǔn)確類型,接下來(lái)詳細(xì)介紹,感興趣的朋友可以了解下
    2013-01-01
  • asp.net?core?中的Jwt(Json?Web?Token)的使用詳解

    asp.net?core?中的Jwt(Json?Web?Token)的使用詳解

    session不支持分布式并且在服務(wù)器存儲(chǔ)一份用戶登錄的信息,這份登錄信息會(huì)在響應(yīng)時(shí)傳遞給瀏覽器,告訴其保存為cookie,以便下次請(qǐng)求時(shí)發(fā)送給我們的應(yīng)用,這篇文章主要介紹了asp.net?core?中的Jwt(Json?Web?Token)的使用,需要的朋友可以參考下
    2022-10-10
  • 實(shí)例說(shuō)明asp.net中的簡(jiǎn)單角色權(quán)限控制

    實(shí)例說(shuō)明asp.net中的簡(jiǎn)單角色權(quán)限控制

    權(quán)限控制在信息管理中屬于基本功能,權(quán)限控制中其中以Window權(quán)限為模型的角色用戶(也稱用戶組用戶)模型使用較多。本文以網(wǎng)站管理后臺(tái)權(quán)限控制為例簡(jiǎn)要說(shuō)明。
    2009-10-10
  • ASP.NET Core使用EF保存數(shù)據(jù)、級(jí)聯(lián)刪除和事務(wù)使用

    ASP.NET Core使用EF保存數(shù)據(jù)、級(jí)聯(lián)刪除和事務(wù)使用

    這篇文章介紹了ASP.NET Core使用EF保存數(shù)據(jù)、級(jí)聯(lián)刪除和事務(wù)使用的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • ASP.NET 2.0服務(wù)器控件開(kāi)發(fā)之復(fù)雜屬性

    ASP.NET 2.0服務(wù)器控件開(kāi)發(fā)之復(fù)雜屬性

    ASP.NET 2.0服務(wù)器控件開(kāi)發(fā)之復(fù)雜屬性...
    2006-09-09
  • Asp.net 字符串操作基類(安全,替換,分解等)

    Asp.net 字符串操作基類(安全,替換,分解等)

    Asp.net安全,替換,分解字符串的類
    2008-11-11
  • 值類型和引用類型的區(qū)別深入理解

    值類型和引用類型的區(qū)別深入理解

    值類型通常被分配在棧上,它的變量直接包含變量的實(shí)例,使用效率比較高;引用類型分配在托管堆上,引用類型的變量通常包含一個(gè)指向?qū)嵗闹羔?,變量通過(guò)該指針來(lái)引用實(shí)例,需要的朋友可以了解下
    2012-12-12

最新評(píng)論