測試某段 Console.ReadLine() 輸入密碼程式,我用了 Console.ForegroundColor = ConsoleColor.Black 技巧避免顯示密碼內容。不料在 VS Code Terminal 測試時,密碼卻走光了:

對照標準 CMD 及 PowerShell,Console.ForegroundColor 設成黑色這招很管用,都能隱藏字元:

由此推斷屬於 VSCode 環境特有狀況,實際使用時不會有問題,不需解決,但我還是想一探究竟。

我知道 VSCode 的整合終端機具有特異功能,像是可以偵測原始檔名行數產生超連結,點擊可馬上跳到程式碼所在位置:

由此可知,VSCode 整合終端機會串接 PowerShell、CMD,甚至 Cmder 的輸出內容,處理加工後再呈現,將 ConsoleColor.Black 與真正的黑色背景區別應是為了方便偵錯。爬文找到相關文件,VSCode 可自訂終端機常用的 16 種 ANSI 顏色,並且可透過 terminal.ansiBlack、ternimal.ansiBrightBlack... 修改(參考:Integrated Terminal colors)。

小測一下,果然可以將 ConsoleColor.Black 換成任何顏色:

再學到一些冷知識。


Comments

Be the first to post a comment

Post a comment