不學 JAVA 換學 C# 之覺得心累 - L1:ch2 變數

AdSense

前言

在 C# 程式語言中,變數是用於儲存資料的命名儲存單元。變數使程式能夠動態地操作資料,而不需在寫程式時知道資料的具體值。理解變數的宣告、賦值和使用是學習 C# 的基礎之一。

變數

C# 是靜態語言,這表示變數的資料類型在編譯時就必須確定,使用前一定要先宣告資料型態。宣告變數時,就會依照資料型態分配一塊,相應大小的記憶體。

如果沒有給值,就沒有初始化。

1
2
string id = "a12345"; // string 為字串型態
int num = 123; // int 為整數型態

命名慣例

用 camelCase (首字母小寫),必須以字母或底線開頭,後續可以包含字母、數字和底線。變數名區分大小寫,而且不能是 C# 的關鍵字 (Reserved identifiers and Contextual keywords)。

資料型態

主要分為:

  • 值類型 (Value types):包括簡單類型 (int、double、char、bool 等)、結構 (Struct)列舉 (Enum)變數的值,直接儲存在記憶體中。
  • 參考類型 (Reference types):物件 (Object)。例如:字串和陣列。參考類型是儲存物件實體的記憶體位址,該記憶體儲存物件實體

值類型 (Value types)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 整數
int age = 25;

// (雙精度) 浮點數
double salary = 5000.50;

// (單精度) 浮點數,初始化 float 的值,記得在數字後方加 f or F
float amount = 3.5F;

// 初始化 decimal 的值,記得在數字後方加 m or M
decimal deposit = 10013.23M

// 字元 (單引號)
char initial = 'A';

// 布林
bool isEmployed = true;

簡單類型的資料範圍

Built-in data types supportted by C#

參考類型 (Reference types)

1
2
3
4
5
6
7
// 字串 (雙引號),使用@就可以不管跳脫字元
string name = "John Doe";
string string2a = "The path is C:\\PublicDocuments\\Report1.doc";
string string2b = @"The path is C:\PublicDocuments\Report1.doc";

// 整數類型的陣列
int[] luckyNums = { 12, 4, 5 };

跳脫字元

跳脫字元表示跳脫原本該字元的意思、作用和功能

原本 " 在程式中是用來當作字串的開頭或結尾。如果加上反斜線 \" 後, " 就會被當作單純的符號,出現在字串中。注意:\ 不會出現在字串中。

常用跳脫字元

樣式 含義
\’ 單引號字元
\" 雙引號字元
\\ 反斜線
\n 換行符號(Enter)
\t 跳格符號(Tab)
\r 游標移至行首、回車符號

變數的初始化

如果沒有給值,就沒有初始化。

1
2
3
4
5
6
7
string id = "a12345"; // string 為字串型態,初始化
int num = 123; // int 為整數型態,初始化

string id2; // string 為字串型態,沒有初始化
int num2; // int 為整數型態,沒有初始化

string id3 = null; // 如果想初始化 string 又不想先賦值,設 null

Declare and Assign

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;

namespace Variables
{
class Variables
{
static void Main()
{
string name = "Jhon";
int age = 40;
Console.WriteLine("There was a men named " + name);
Console.WriteLine("He was " + age + " years old.\n");

Console.WriteLine("The types of variables are: ");
Console.WriteLine("string, char");
Console.WriteLine("int, float, double, decimal");
Console.WriteLine("bool");

Console.ReadKey();
}
}
}

命名慣例

  • 類 class、方法 method、命名空間 namespace、屬性 property:用 PascalCase (首字母大寫)
  • 變數 variable、物件 object:用 camelCase (首字母小寫)必須以字母或底線開頭,後續可以包含字母、數字和底線。變數名區分大小寫,並且不能是C#的關鍵字。
  • 常數 Constant:每個字母都大寫。