C#變數與常量
C#變數
一個變數只不過是一個供程式操作的儲存區的名字。在 C# 中,每個變數都有一個特定的型別,型別決定了變數的記憶體大小和佈局。範圍內的值可以儲存在記憶體中,可以對變數進行一系列操作。
我們已經討論了各種資料型別。C# 中提供的基本的值型別大致可以分為以下幾類:
型別 | 舉例 |
---|---|
整數型別 | sbyte、byte、short、ushort、int、uint、long、ulong 和 char |
浮點型 | float 和 double |
十進位制型別 | decimal |
布林型別 | true 或 false 值,指定的值 |
空型別 | 可為空值的資料型別 |
bool valBool = true;//預設false byte valByte = 128;//預設0 無符號八位整數 範圍0 到 255 跟java中-128~127不同 不過總數也是2的8次方 sbyte的範圍就與java的byte相符 decimal valDecimal = 6.6m;//128 位精確的十進位制值,28-29 有效位數 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M 用來儲存金錢 大概類似java的BigDecimal類?是基本型別的話應該效率比較高 sbyte valSByte = -128;//有符號八位整數 -128~127 sbyte=signed byte uintvalUInt = 233;//確保是正整數時才用uint宣告 uint= unsigned int 無符號32位整數 float valFloat=6.18f; var valVar = 1.1;//自動轉換double string 或者float string valString = "";
C# 允許定義其他值型別的變數,比如enum,也允許定義引用型別變數,比如class。
enum ENUM { } class CLASS { }
C# 中的變數定義
C# 中變數定義的語法:
<data_type> <variable_list>;
在這裡,data_type 必須是一個有效的 C# 資料型別,可以是 char、int、float、double 或其他使用者自定義的資料型別。variable_list 可以由一個或多個用逗號分隔的識別符號名稱組成。
一些有效的變數定義如下所示:
int i, j, k; char c, ch; float f, salary; double d;
可以在變數定義時進行初始化:
int i = 100;
C# 中的變數初始化
變數通過在等號後跟一個常量表達式進行初始化(賦值)。初始化的一般形式為:
variable_name = value;
變數可以在宣告時被初始化(指定一個初始值)。初始化由一個等號後跟一個常量表達式組成,如下所示:
<data_type> <variable_name> = value;
一些例項:
int d = 3, f = 5; /* 初始化 d 和 f. */ byte z = 22; /* 初始化 z. */ double pi = 3.14159; /* 宣告 Π的近似值 */ char x = 'x'; /* 變數 x 的值為 'x' */
正確地初始化變數是一個良好的程式設計習慣,否則有時程式會產生意想不到的結果。
接受來自使用者的值
System名稱空間中的Console類提供了一個函式ReadLine(),用於接收來自使用者的輸入,並把它儲存到一個變數中。
例如:
Console.WriteLine("insert two num to calculate."); //readLine 獲取使用者輸入(String) 再用toint32轉換成int型別 int first = Convert.ToInt32(Console.ReadLine()); Console.WriteLine($"{first} and?"); int second = Convert.ToInt32(Console.ReadLine()); Console.WriteLine($"{first} + {second} ="+(first+second));
函式Convert.ToInt32()把使用者輸入的資料轉換為 int 資料型別,因為Console.ReadLine()只接受字串格式的資料。
C# 中的 Lvalues 和 Rvalues
C# 中的兩種表示式:
-
lvalue:lvalue 表示式可以出現在賦值語句的左邊或右邊。
-
rvalue:rvalue 表示式可以出現在賦值語句的右邊,不能出現在賦值語句的左邊。
變數是 lvalue 的,所以可以出現在賦值語句的左邊。數值是 rvalue 的,因此不能被賦值,不能出現在賦值語句的左邊。下面是一個有效的語句:
int g = 20;
下面是一個無效的語句,會產生編譯時錯誤:
10 = 20;
C#常量
常量是固定值,程式執行期間不會改變。常量可以是任何基本資料型別,比如整數常量、浮點常量、字元常量或者字串常量,還有列舉常量。
常量可以被當作常規的變數,只是它們的值在定義後不能被修改。
整數常量
整數常量可以是十進位制、八進位制或十六進位制的常量。字首指定基數:0x 或 0X 表示十六進位制,0 表示八進位制,沒有字首則表示十進位制。
整數常量也可以有後綴,可以是 U 和 L 的組合,其中,U 和 L 分別表示 unsigned 和 long。字尾可以是大寫或者小寫,多個字尾以任意順序進行組合。
這裡有一些整數常量的例項:
212 /* 合法 */ 215u /* 合法 */ 0xFeeL /* 合法 */ 078 /* 非法:8 不是一個八進位制數字 */ 032UU /* 非法:不能重複字尾 */
以下是各種型別的整數常量的例項:
85 /* 十進位制 */ 0213 /* 八進位制 */ 0x4b /* 十六進位制 */ 30 /* int */ 30u /* 無符號 int */ 30l /* long */ 30ul /* 無符號 long */
浮點常量
一個浮點常量是由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。
這裡有一些浮點常量的例項:
3.14159 /* 合法 */ 314159E-5L /* 合法 */ 510E /* 非法:不完全指數 */ 210f /* 非法:沒有小數或指數 */ .e55 /* 非法:缺少整數或小數 */
使用小數形式表示時,必須包含小數點、指數或同時包含兩者。使用指數形式表示時,必須包含整數部分、小數部分或同時包含兩者。有符號的指數是用 e 或 E 表示的。
字元常量
字元常量是括在單引號裡,例如,'x',且可儲存在一個簡單的字元型別變數中。一個字元常量可以是一個普通字元(例如 'x')、一個轉義序列(例如 '\t')或者一個通用字元(例如 '\u02C0')。
在 C# 中有一些特定的字元,當它們的前面帶有反斜槓時有特殊的意義,可用於表示換行符(\n)或製表符 tab(\t)。在這裡,列出一些轉義序列碼:
轉義序列 | 含義 |
---|---|
\\ | \ 字元 |
\' | ' 字元 |
\" | " 字元 |
\? | ? 字元 |
\a | Alert 或 bell |
\b | 退格鍵(Backspace) |
\f | 換頁符(Form feed) |
\n | 換行符(Newline) |
\r | 回車 |
\t | 水平製表符 tab |
\v | 垂直製表符 tab |
\ooo | 一到三位的八進位制數 |
\xhh . . . | 一個或多個數字的十六進位制數 |
以下是一些轉義序列字元的例項:
namespace EscapeChar { class Program { static void Main(string[] args) { Console.WriteLine("Hello\tWorld\n\n"); Console.ReadLine(); } } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
Hello World
字串常量
字串常量是括在雙引號""裡,或者是括在@""裡。字串常量包含的字元與字元常量相似,可以是:普通字元、轉義序列和通用字元
使用字串常量時,可以把一個很長的行拆成多個行,可以使用空格分隔各個部分。
這裡是一些字串常量的例項。下面所列的各種形式表示相同的字串。
string a = "hello, world"; // hello, world string b = @"hello, world"; // hello, world string c = "hello \t world"; // hello world string d = @"hello \t world"; // hello \t world string e = "Joe said \"Hello\" to me"; // Joe said "Hello" to me string f = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me string g = "\\\\server\\share\\file.txt"; // \\server\share\file.txt string h = @"\\server\share\file.txt"; // \\server\share\file.txt string i = "one\r\ntwo\r\nthree"; string j = @"one two three";
定義常量
常量是使用const關鍵字來定義的 。定義一個常量的語法如下:
const <data_type> <constant_name> = value;
下面的程式碼演示瞭如何在程式中定義和使用常量:
例項
using System; public class ConstTest { class SampleClass { public int x; public int y; public const int c1 = 5; public const int c2 = c1 + 5; public SampleClass(int p1, int p2) { x = p1; y = p2; } } static void Main() { SampleClass mC = new SampleClass(11, 22); Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); Console.WriteLine("c1 = {0}, c2 = {1}", SampleClass.c1, SampleClass.c2); } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
x = 11, y = 22 c1 = 5, c2 = 10
自己記錄的時候就發現自己腦子裡什麼都沒有,光看教程覺得有些繁瑣
簡單的就歸納為一個可以變化和一個不可以變化的量了
還是借(抄)鑑爽
想深入瞭解一些概念又看不懂,只好抄一些淺顯一點的內容混日子這樣子