#Hello World! Hello C#! 2017/09/28 廖惠平
##Out Lines - 程式 - C# 和 .Net - Visual Studio - Console - 專案與環境建置 - Hello World! - 跳脫字元 - 實作練習
#程式
##什麼是程式? - 電腦做的事情 - 1與0 - 很厲害⁽⁽ ◟(∗ ˊωˋ ∗)◞ ⁾⁾
##什麼是程式 - 1與0 - 遵循規則(邏輯) - 快速 - 大量
##程式語言 - 特定語法 - 給電腦執行的規則 - 給人看得懂又好寫的規則
##程式語言 - 直譯 V.S. 編譯 - 低階 V.S. 高階 - 指令 V.S. 邏輯 - 物件導向 V.S. 函式導向
##所以C#是?! - 編譯 - 高階 - 指令 - 物件導向
#C# 和 .Net
## Hello C#! - \#唸做Sharp - 或者你也可以稱為「C井」 - 傳說是這樣演化而來的 - C - C++ - C++++ → C# 噔愣~ - 物件導向 - 跨平台
##.Net Framwork - 跨平台、跨語言 - 微軟 - CLR - IL - JIT
##C# V.S. .Net ![C# 與 .Net Framwork關係圖](netarchitecture.png) [釐清關係 (Will保哥)](https://blog.miniasp.com/post/2015/07/28/Clarify-the-versions-between-CLR-NET-CSharp-Visual-Studio-and-ASPNET.aspx)
#Visual Studio
##Visual Studio - 很肥 - 很強大 - 多語言 - 微軟 - 社群版與專業版
##什麼是IDE - Integrated Development Environment - 整合開發環境 - 文字編輯 - 建置工具 - 除錯工具 - 讓人越來越懶的工具
#Console
##Console Application - 控制台應用程式 - 小黑窗 - 純文字 - 讓人覺得你好厲害
##Why Console? - 環境單純 - 不容易出錯 - 降低入門門檻 - 讓人覺得你好厲害
#環境與專案建置
##建立專案 ![建立專案](CreateProject.PNG) - 檔案 → 新增 → 專案 - Visual C# → Windows → 主控台應用程式
##建置、執行與偵錯 - 建置(Build):把程式碼輸出執行檔 - 執行(Run) - 偵錯(Debug):隨時喊卡
##建置、執行與偵錯 ![Build and Run UI](BuildRunButton.PNG) ![中斷點](Breakpoint.PNG) - 快捷鍵:F5 及 Ctrl+F5 - 中斷點
##方案總管 ![方案總管](Project.PNG) - 方案、專案及檔案結構 - Program.cs

程式撰寫

程式進入點:Main


namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
        	//這裡是你要寫程式碼的地方
        }
    }
}
#Hello World!
##Hello World! - 所有語言的起始點 - 實作 - 其實程式很簡單

程式撰寫

顯示文字:Console.Write("文字內容");


namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
        	Console.Write("Hello World!");
        	Console.Write("Hello C#!");
        }
    }
}
					

程式撰寫

顯示文字後換行:Console.WriteLine("文字內容");


namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
        	Console.WriteLine("Hello World!");
        	Console.WriteLine("Hello C#!");
        }
    }
}
					

程式撰寫

接收一行輸入:Console.ReadLine();


namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
        	Console.WriteLine("Hello World!");
        	Console.WriteLine("Hello C#!");

        	Console.ReadLine();
        }
    }
}
					

程式撰寫

清空輸出:Console.Clear();


namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
        	Console.WriteLine("Hello World!");
        	Console.ReadLine();
        	Console.Clear();

        	Console.WriteLine("Hello C#!");
        	Console.ReadLine();
        }
    }
}
					
#跳脫字元
##跳脫字元 - 避開保留字 - 特殊顯示 - 換行 - Tab
##跳脫字元 |顯示|字元| |:---:|:---:| |換行|\n| |Tab|\t| |\|\\\| |'|\'| |"|\"|

程式撰寫


namespace HelloWorld
{
    class Program
    {
    static void Main(string[] args)
        {
        	Console.WriteLine("Hello World!\nHello C#!");
        	Console.ReadLine();
        	Console.Clear();
        	
        	Console.WriteLine("Hello World!\tHello C#!");
        	Console.ReadLine();
        	Console.Clear();

        	Console.WriteLine("\\Hello World/\\Hello C#/");
        	Console.ReadLine();
        	Console.Clear();

        	Console.WriteLine("\"Hello World! Hello C#!\"");
        	Console.ReadLine();
        	Console.Clear();
        }
    }
}
					
#實作練習
##情書 - 開始時,顯示收件者 - 每按一次Enter顯示一段內容 - 再按一次Enter顯示署名 - 最後按Enter結束程式
##沙漏 - 開始時,沙子都在上面 - 每按一次Enter就會掉一點下來 - 沙漏完後顯示"時間到!" - 再按一次Enter結束程式
#課後練習 - 荒野探險日記 - 顏文字清單