分類: C#教學

C#教學(八)泛型集合與Linq

以下介紹C#當中常使用的泛型集合(generic collections)。泛型集合是C#標準庫提供的集合資料結構(data structure),位於命名空間System.Collections.Generic中。

這裡不提及非泛型集合(有泛型集合之後,沒有需要再使用非泛型集合,執行效率、可讀性等等都更好,也能實現非泛型集合的功能),與併行(concurrent)的泛型集合(位於System.Collections.Concurrent)。

建議對於C#基本程式碼有較熟練的掌握度後再來看下面的內容,尤其是Linq的部分。

繼續閱讀 “C#教學(八)泛型集合與Linq"

C#教學(七)結構與類別

警告:以下內容不是物件導向教學,物件導向是一種建構程式的方法概念與哲學,這裡只是講解怎麼使用C#提供的物件導向功能,這個系列不會教導任何寫程式的概念,只是教你怎麼用而已。物件導向請看這篇

繼續閱讀 “C#教學(七)結構與類別"

C#教學(六)函數世界

C#同時具有物件導向與函數導向的特性

函數

函數概念

函數(function),是一段可執行程式碼的區域,嚴格的函數具有參數與回傳值,目的是為了完成某項工作,並不應該有副作用(side effect)產生(除了計算回傳值之外不做其他事,也不影響接下來的計算),不過大多時候我們需要的只是將一部分的程式碼抽離執行,並執行副作用,因此不需要被純函數的規則限定。

繼續閱讀 “C#教學(六)函數世界"

C#教學(五)流程控制與陣列

陣列

上一篇中有簡單的提到了陣列(array)的使用方法,這裡再強調一下,陣列是由型態加上一對方括號[]這樣子一系列的類型,陣列本身是一個類型,也是一個獨立物件。透過new來初始化,並決定陣列長度。是一種參考型態,被傳遞的時候不會被複製。

繼續閱讀 “C#教學(五)流程控制與陣列"

C#教學(四)基本運算與輸入

對於各種輸入都要小心處理,外部輸入常常造成沒有意料到的錯誤

學習完基本的變數宣告之後,學習一些基本型態的運算操作與輸入。

//是單行註解 //後的內容不算在執行的程式碼中

另外還有/*  */ 一組的多行註解與///的xml註解

Visual Studio在執行程式的"開始"右邊一點有輔助註解的工具,把程式碼框起來後自動註解或是削去註解。

繼續閱讀 “C#教學(四)基本運算與輸入"

C#教學(三)型態與變數

前言

型態分為兩大類:數值型態(value type)與參考型態(reference type)。弄清楚這兩種的差別是學習C#的一大重點。

 

變數宣告

變數是用來儲存資料的容器,宣告變數的時候要指定要裝的型態與變數的名稱,變數名稱不能以特殊符號(底線例外)和數字開頭,支援unicode編碼。視狀況需要可以給定初始值。

繼續閱讀 “C#教學(三)型態與變數"

C#教學(二)認識C#基本架構與基本輸出

認識命名空間(namespace)

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

namespace Exercise
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

 

在自動生成的第一個程式的前幾行有幾行using開頭的程式碼,接著是namespace 自定義的命名空間。

事實上上面那一串System System.Collections.Generic等等和你自定義的命名空間全部都是命名空間,Visual Studio會自動幫你把命名空間加上去,你也可以自己把他改掉。

繼續閱讀 “C#教學(二)認識C#基本架構與基本輸出"

C#教學(一)準備環境

前言

寫C#的時候最好搭配著IDE的使用,可以大幅度的提升開發效率。

首先先到Visual Studio官網下載最新的Visual Studio Community並安裝。

也可以使用MonoDevelop的Xamarin Studiox,如果是Windows使用者,建議使用Visual Studio,因為功能比較強大,這個系列的文章內容也會使用Visual Sudio來開發程式。

我最近還發現JetBrain也有C#的跨平台IDE,Project Rider,JetBrain以Java的IntelliJ IDEA最有名,我沒有用過這個,不過你可以去試試看。

繼續閱讀 “C#教學(一)準備環境"