主控台文字輸出操作

Console 類別

隸屬 System 命名空間,為 .NET 基礎類別程式庫(BCL)的一員

負責主控台視窗的文字讀寫操作,提供兩種輸出函式:Write() / WriteLine()

在 Visual Studio 中,將游標移到 Console 文字上方,按下 F12 鍵,即可檢視此類別的定義

隨後會跳轉至 Console 的中繼資料檢視畫面。這並非原始程式碼,而是 VS 內建的反編譯功能,可檢視該類別的所有方法、類別名稱、參數等成員資訊。

在 Console 中繼資料頁面,能看見可供呼叫的 Write()WriteLine() 函式。

Console.Write ()

輸出文字後不會自動換行,連續多次輸出的內容會接續在同一列顯示

            // 簡寫寫法(開頭有 using System 就可省略 System. 前綴)
            Console.Write("Hello everyone.");

            // 完整限定寫法
            System.Console.Write("This is foxdevelop.");
            System.Console.Write("This is com.");
            System.Console.Write("good luck.");Code language: JavaScript (javascript)

將上方程式碼貼到 Main 方法內執行。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 簡寫寫法(開頭有 using System 就可省略 System. 前綴)
            Console.Write("Hello everyone.");

            // 完整限定寫法
            System.Console.Write("This is foxdevelop.");
            System.Console.Write("This is com.");
            System.Console.Write("good luck.");
        }
    }
}Code language: JavaScript (javascript)

執行輸出結果

Hello everyone.This is foxdevelop.This is com.good luck.Code language: CSS (css)

文字常數必須使用雙引號包覆,不可使用單引號。

Console.WriteLine ()

功能與 Write 完全相同,差異在輸出結尾會自動加上換行符號,每一次輸出內容獨占一列。

簡單來說,每次輸出完畢後,游標會自動換列,移至下一行開頭等待後續輸出。

            Console.WriteLine("Hello everyone.");

            Console.WriteLine("This is foxdevelop.");
            Console.WriteLine("This is com.");
            Console.WriteLine("good luck.");Code language: JavaScript (javascript)

執行輸出結果

這次內容各自換行了,因為每段文字輸出後游標都會跳到下一列。

格式化字串

(舊版佔位語法,目前多數舊專案仍持續使用)

  • 方法參數格式:Console.WriteLine(格式化字串, 替換值0, 替換值1, ...)
  • 第一個參數固定為格式化字串,以 {數字} 作為替換標記
  • 標記數字從 0 開始編號,依序對應後方傳入的各個替換值
  • 多個替換參數以逗號分隔
        static void Main(string[] args)
        {
            Console.WriteLine(" {0} + {1} = {2}", 9, 6,9 + 6);
        }Code language: JavaScript (javascript)

執行輸出結果

 9 + 6 = 15

範例中第一個字串「 {0} + {1} = {2}」包含三個佔位標記,數字順序對應後面三個參數:9、6 以及兩數相加的結果 15,程式會自動將數值填入 {0}、{1}、{2} 對應位置。

字串內插

C# 6.0 起新增的簡潔語法,可直接在佔位符內撰寫變數

在字串開頭加上 $ 符號啟用內插功能,大括號 {} 當中可直接書寫變數名稱,編譯器自動代入變數數值,不需額外傳入替換參數

        static void Main(string[] args)
        {
            double pi = 3.14;
            string webSite = "foxdevelop.com";
            Console.WriteLine($"The Pi is {pi} and the website is {webSite}.");
        }Code language: JavaScript (javascript)

執行輸出結果

The Pi is 3.14 and the website is foxdevelop.com.Code language: CSS (css)

多個變數混用

下方範例示範在同一組字串模板內放入多個變數佔位符

int latitude = 36;
int longitude = 17;
string north = "N", east = "E", south = "S";
Console.WriteLine($"緯度 {latitude}{north}, 經度 {longitude}{east}");
Code language: JavaScript (javascript)

執行輸出結果

緯度 36N, 經度 17E

使用注意事項

複雜的內插字串容易搞混變數順序,兩種語法都建議熟練掌握;現場仍有大量專案維持舊版格式化寫法。

主控台文字輸出操作

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *