iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
3
Modern Web

C#與ASP.Net入門-我要成為工程師!!系列 第 4

Day04-用C#寫出第一個Hello World吧!(Console模式/Visual Studio)

本文包含內容:
1.console畫面程式架構說明(using、namespace、class)
2.怎麼用C#寫出hello world
3.C#怎麼下註解

程式架構

如上一篇所說,基礎練習我們都先使用console主控台模式。
先來認識一下打開之後畫面的長相以及它的架構
https://ithelp.ithome.com.tw/upload/images/20190907/20120055dh2gS1wut7.png

打開後預設的內容會看到以下三個部分

1.using

寫在最上方用來匯入函式庫(其他命名空間)使用,這也是using最常用的用法,就像是JAVA的import。C#本身基礎類別函式庫 (BCL)裡已經內建許多函式,如自動生成的這一些。有用到的Visual Studio會變白色,沒有用到會是灰色。

那為什麼要匯入其他函式?

因為這樣就可以直接在程式中使用命名空間裡的型別,而不用指定型別的詳細空間,縮短程式碼
可以想像有人寫好很多魔法工具分門別類放在某個黃金色箱子裡,沒有用using的話,你要使用某個工具,你要跟電腦說你幫我找一個黃金箱子,我現在要使用黃金箱子裡的第三層的第二格的左邊的那個藍色魔法工具。但如果使用using,代表你已經跟電腦說好了反正我所有要使用的工具都放在黃金箱子裡的第三層,那要使用的時候只要跟它說我要第二格的左邊的那個藍色魔法工具,整個指令就會簡短很多。

以Console.WriteLine( )為例。Console是System下的類別

沒有用using System的程式碼寫法

System.Console.WriteLine(參數或內容);

最上方有用using System的程式碼寫法

Console.WriteLine(參數或內容);

注意如果要處理try-catch的狀況,即使使用using,還是要自己在前面加上命名空間無法省略

2.namespace命名空間

打包程式碼的空間,把相同功能者聚集在一起,用namespace 名稱 { } 一組大括號包起來,可以自己取名字,預設建立時會設定的跟專案(project)名稱一樣,當其他地方要用到的時候可以呼叫這個名字,如上方using後方也都是命名空間。用來指名程式所屬範圍,避免相同名稱類別產生衝突,可以控制類別的範圍。一個檔案只有一個命名空間

3.class類別

管理屬性及方法的地方,程式開始撰寫的最小單位,也是用一組大括號包起來。

成為工程師的第一步:Hello World!

小知識: 在1972年,貝爾實驗室的Brian Kernighan用B語言撰寫了第一個使用參數的Hello World相關程式,這個程式成為了第一個Hello World的示範程式。兩年後,Brian Kernighan與朋友使用C語言寫出更簡便的Hello World。於是後來許多程式設計師無論用什麼語言,寫的第一段程式碼都是Hello World。也有初心者第一次使用程式語言跟這個美麗的世界打招呼的意思唷٩(๑❛ᴗ❛๑)۶

接下來讓我們來開始寫第一行程式吧!

https://ithelp.ithome.com.tw/upload/images/20190903/20120055SKBEyvMP6B.png

static void Main(string[] args){你的程式碼}進入點寫法

程式碼這麼多,C#裡你要告訴電腦從哪一行開始往下讀。這是Console模式裡進入點的寫法。C#只能有一個進入點。

以下不一定要懂,先知道進入點寫法即可,我也是很久之後才比較懂(´_ゝ`)

  • static: 一般類別中的方法必須先建立該類別的實體物件(new)後才能使用。若宣告為static,代表一開始就存在在記憶體中,不用先建立Main()的物件實體就能叫用。
  • void:表示不會傳回任何值。
  • Main():為程式開始執行的進入點,跟JAVA、C、C++相同,Main必須是static。
  • string[] args:代表執行Main()方法時會將接在專案執行檔後面的參數置入 args 陣列。args是一個字串陣列。

程式內容

Console.WritLine("Hello World!");

  • console:是在console執行,所以目標就是console。
  • WriteLine():這是一種方法,代表輸出+換行這個動作。()內要放參數,或是我們要輸出的內容。由於我們要輸出的Hello World是字串,要用雙引號包起來。更多輸出內容可以參考MSDN
  • C#每行程式需要用;結尾。

Console.Read();

  • 架構跟上方相同,Read()這個方法是讀入主控台輸入的字串。多寫這一行是因為,程式預設一執行完就會關閉視窗,你就看不到輸出結果了。加了這一行它就會等著我們輸入字串暫時不關閉視窗。也可以寫Console.ReadKey();,讀入一個鍵的意思。

接著按下上方執行輸出結果,恭喜你完成Hello World!了!
https://ithelp.ithome.com.tw/upload/images/20190903/20120055QeXS4HeXMg.png

C#讀入與輸出

  • 讀入

    • Console.Read():讀入一個字元
    • Console.ReadLine():讀入一行字串
    • Console.ReadKey():讀入一個鍵
  • 輸出

    • Console.Write():輸出一段字但不換行
    • Console.WriteLine():輸出一段字並換行

C#怎麼寫註解?

有時候我們會希望在程式碼中寫註解幫助自己記憶,或是未來要跟別人合作時要寫一些註解方便溝通,這時候我們就會使用註解。有三種方式:

  • 單行註解:使用//雙斜線代表單行註解
    //我是註解
  • 多行註解:包在 /* */ 之間
/*我是註解第一行
我是註解第二行
           我是第三行*/
  • 使用Visual Studio工具列
    https://ithelp.ithome.com.tw/upload/images/20190903/20120055y3MaJYL7l7.png

  • C#的XML註解
    感謝下方隱士者大大補充
    C#的XML註解多用在文件說明,例如這份程式碼要給別人使用的話,一個說明書的概念!
    連續輸入三個/後會自動產生下方程式碼

/// <summary>
/// 這裡寫補充資訊、也用來描述類型或類型成員
/// </summary>
/// <param name="args">這裡寫參數的描述</param>

================================================================

參考資料:

https://ithelp.ithome.com.tw/articles/10199677
Main() 和命令列引數 (C# 程式設計指南)
方案(solution)專案(project)命名空間(namespace)類別(class)方法(method)屬性(property)差異


上一篇
Day03-C# IDE-Visual Studio安裝教學(2019版)及新增專案
下一篇
Day05-C#撰寫規則與命名限制+(補充#region與#endregion用法)
系列文
C#與ASP.Net入門-我要成為工程師!!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

4
隱士者
iT邦新手 4 級 ‧ 2019-09-25 10:16:52

還有一種註解是輸入///就會跳出以下
/// <summary> /// /// </summary> /// <returns></returns>
https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/xmldoc/summary

感謝大大補充!

我要留言

立即登入留言