[C#][Visual Studio] 資料型態與運算子

熱門文章 (Popular Post)

Posted by : Duran Hsieh 8月 13, 2017

前言

上一篇我們簡單介紹 C# 語言特色與發展史,在這一篇文章,我們簡單介紹資料型態與運算子。若您先前有高階語言(如 Java) 的基礎,對於這一篇應該會有基本的認識。本篇文章若有錯誤或任何建議,請各位先進不另指教。


介紹

簡介

資料型態與運算子為程式語言的基礎,你可以指定變數的資料型態,並透過運算子進行不同的運算。如下範例:int整數資料型態, a變數名稱= 運算子1數字,而每一行程式結束的時候都需要一個 ""



以此類推,我們也能指定小數、字符、文字、true/false;當然,你也能宣告但不指定內容(部分變數會有預設值)。
float b = 1.2;
chat c = 'a';
bool e = true;
int f, g, i;

這些我們稱為實質型別,下圖為常用型別列表紅色字部分為個人常用的型別。
注:string 非實質型別,為參考型別
參考資料:https://msdn.microsoft.com/en-us/library/ms228360(v=vs.90).aspx

另一種型別為參考型別。參考型別內的變數會指向參考型別(通常是物件)的參考,若有實值類別變數與參考類別的變數同時參考同一物件,改變其中一個變數內容可能會變更另一個變數。參考型別包含:
1. class
2. interface
3. delegate
4. object
5. string





運算子

上面的範例有提到運算子,運算子可以對變數進行操作,我們簡單介紹幾個常用的。以簡單的數學加、減、乘、除與餘數為例:
int a = 10;
int b = 5;

int c = a + b;
int d = a - b;
int e = a * b;
int f = a / b;
int g = a % b;
變數 c, d, e, f, g 的內容分別為 15, 5, 50, 2, 0,您可以透過第一篇文章所教的 debug 模式或下列指令印出變數內容:

++ 與 -- 為遞增與遞減,範例如下:


&& 與 || 為邏輯運算,比較常用於 if 判斷式 (下一篇流程控制會提到),下表為邏輯判斷表:
AND 情況下,條件A與條件B必須都成立 (true),否則皆為 false;OR 情況下,條件A與條件B必須都不成立 (false),否則皆為 true。再說明範例前,我們先了解下列運算子。
A == B // A 等於 B
A != B // A 不等於 B
A >= B // A 大於等於 B
A <= B // A 小於等於 B

下圖為範例:
第一個判斷式為 a 等於10 AND B等於5,因為條件都成立,所以為 ture;第二個判斷式為 a 大於10 AND B等於5,因為a條件不成立,所以為false,依此類推。



隱含轉換與明確轉換 

某些變數之間需要經過轉換才能指派給另一個變數,轉換方式有兩種,分別是隱含轉換與明確轉換。隱含轉換之前會有些限制,像是長度短的放入較長的變數,否則會有錯誤訊息。

下面的範例為隱含轉換:
int a = 4;
long b = 5;
b = a;

下面的例子為明確轉換:
int a = (int) b;

string possibleInt = "1234";
int count = Convert.ToInt32(possibleInt);


匿名類型

可以減少定義工作,適用於暫時的資料,不建議當作參數傳遞。
var a = 10;
var op = new { age = 2};


命名規範 

變數命名通常使用名詞,以有意義、可搜尋、避免縮寫、避免編碼的命名為主,所以我們上面的範例其實不是很好。C# 採用 Pascal 與 Camel 命名法,若非特定場合,不要使用底線。變數、參數命名範例如下:
int backColor;
string currencyCode;
還有一些命名原則須要注意,包含
1. 顯露意圖:立刻解釋用途與如何使用
2. 不裝可愛與語帶雙關
3. 要念得出來
4. 盡可能使用專業術語
5. 一致性

上一篇:[C#][Visual Studio] C# 語言簡介
下一篇:[C#][Visual Studio] 控制流程

參考資料

1. Study4TW 內部教材
2. 參考型別 - Microsoft Docs
3. Clean Code


Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Duran Hsieh @ Matsurigoto - Date A Live - Powered by Blogger - Designed by Johanes Djogan -