c 控制台模擬dos 超好用的C 控制台應用模板

2021-10-12 13:23:01 字數 1189 閱讀 5838

預設模板之缺

**看起來大概是這樣——

using system;

class program

static void main(string args)

console.writeline("hello world!");

面對這如同白紙一樣的模板,如果我們需要捕捉一下異常、呼叫一下非同步方法、記錄一下log呢?勤奮的你一定存有一些常用的經典**片段和配置檔案吧,那就一一複製進來唄……折騰了十來分鐘後,終於可以開始寫**了……

n天之後,又需要新寫個控制台應用了,我們再次重複一遍上述過程。

安裝模板外掛程式

模板便利特性

我們可以直接執行樣例**,也可以將 work 方法中樣例**替換成我們的業務邏輯。樣例**直接執行的效果如下——

使用了 c# 7.1 中新引入的非同步 main 方法,用來放置業務邏輯的 work 方法同樣是非同步的。呼叫非同步方法時,可以直接使用 await 關鍵字,省去了我們之前在同步 main 方法中做同樣操作時附加的 .wait() 甚至是 .configureawait(false).getawaiter().getresult() 的繁瑣。

整體的異常處理,針對 aggregateexception 和 exception 分別進行了捕捉和記錄,並依此設定了 exit code。

stopwatch 測量整體的執行時間並在最後一行日誌中輸出。

修改**頁以支援 utf-8 字元正常顯示,如果需要顯示漢字,在非中文的 windows 中還需要額外地將 cmd.exe 的預設字型設定為 mingliu / 新細明體 或其他cjk字型。

此外,無論是 .net core 還是 .net framework 版本的 csproj 檔案都採用了 msbuild 15.0 新引入的 project sdk 格式。新的格式不僅更簡單清爽,也帶來了很多方便的特性,這裡不再贅述。

相關需求解法

在模板的基礎上,如果需要解析複雜的命令列引數,可以考慮引入 nuget 包 commandline.net 進行解析。它的使用方法非常簡單,github 專案的一頁 readme 便已闡述清楚,亦支援跨平台。

反之,如果僅僅想執行幾行**,又不願等 visual studio 啟動呢?可以用瀏覽器開啟 .net fiddle 直接嘗試,它不僅支援最新的 .net framework 4.7.2 版本,還可以選擇 roslyn 2.0,而且在 c# 之外支援 f# 和 vb.net。

超好用的C 控制台應用模板

預設模板之缺 看起來大概是這樣 using system 面對這如同白紙一樣的模板,如果我們需要捕捉一下異常 呼叫一下非同步方法 記錄一下log呢?勤奮的你一定存有一些常用的經典 片段和配置檔案吧,那就一一複製進來唄 折騰了十來分鐘後,終於可以開始寫 了 n天之後,又需要新寫個控制台應用了,我們再次...

C 控制台輸出

建立console應用程式 using system using system.collections.generic using system.linq using system.text namespace byte 資料型別 byte 變數以無符號的 8 位 1 個位元組 數字的形式儲存,取值...

C 控制台 《迷宮》

最近閒來無事,回顧一下以前學過的c 控制台小程式,特發此篇 主體思路 利用二維陣列來實現。效果圖 首先 vs2010,建立控制台程式,然後,新增類labyrinth,該類的 如下,1 using system 23 namespace迷宮4 9 10 11 12 13 14 15 16 17 18 ...