網(wǎng)站建設(shè)ktv惠州seo排名優(yōu)化
序號 | 系列文章 |
---|---|
1 | 【C#基礎(chǔ)】C# 程序通用結(jié)構(gòu) |
2 | 【C#基礎(chǔ)】C# 基礎(chǔ)語法解析 |
3 | 【C#基礎(chǔ)】C# 數(shù)據(jù)類型總結(jié) |
文章目錄
- 前言
- 一. 變量(variable)
- 1,變量定義及初始化
- 2,變量的類別
- 3,接收輸出變量
- 二. 常量(constant)
- 1,常量的定義及初始化
- 2,常見的常量類型
- 結(jié)語
前言
😄大家好,我是writer桑,前面一章已經(jīng)學(xué)習(xí)了 C# 的數(shù)據(jù)類型,那本章就開始學(xué)習(xí)C# 程序中變量與常量的使用,希望看完大家能夠有所收獲,感謝支持!
一. 變量(variable)
變量用來存儲信息,而變量名就是一個供程序操作存儲區(qū)的名字。每個變量都有一個特定的類型,類型決定了變量內(nèi)存的大小和布局, 變量的值存儲在內(nèi)存中,在允許的范圍內(nèi)可以對變量進(jìn)行一系列的操作。
1,變量定義及初始化
C# 變量定義的語法: <data_type> <variable_name>;
- data_type 也即變量的類型,這里必須是一個合法的 C# 數(shù)據(jù)類型 。
- variable_name 表示變量名稱,通過賦值將數(shù)據(jù)和可描述的變量名連接起來,同時變量的聲明必須是有效的 C# 標(biāo)識符。
一些有效的變量定義示例代碼:
// 整數(shù)、字符、浮點數(shù)、字符串類型的定義;
int i, j, k;
char c, ch;
float f, salary;
string s;
變量初始化賦值語法:<data_type> <variable_name> = value;
- 其中 value 表示常量表達(dá)式,使用等號將初始值和變量名連接
- 對于在獲取變量的值之前,都需要對該變量進(jìn)行明確賦值,輸出未賦值的變量時編譯器會報錯誤。
- 變量在定義時分為初始賦值或者初始未賦值,筆者建議聲明變量時進(jìn)行賦值,詳細(xì)的理由請查看第12條建議;
我們可以在變量定義時進(jìn)行初始化:
// 定義變量并初始化
int i = 11;
char c = 'A';
float f = 1.1f;
string s = "hello,world";
2,變量的類別
C # 定義了七種類型的變量:靜態(tài)變量、實例變量、數(shù)組元素、值參數(shù)、引用參數(shù)、輸出參數(shù)和局部變量。 下面分別介紹其中每個類別。
代碼理解:
class Example
{public static int x;int y;void ExampleMethod(int[] v, int a, ref int b, out int c){int i = 1;c = a + b++;}
}
x 是靜態(tài)變量, y 是實例變量, v[0] 是數(shù)組元素,a 是值參數(shù), b 是引用參數(shù),c 是輸出參數(shù), i 是局部變量。
靜態(tài)變量:
在 C# 程序中使用 static 關(guān)鍵字聲明的字段為靜態(tài)變量,靜態(tài)變量它不需要實例化對象來引用,可以直接使用類名來引用。靜態(tài)變量的默認(rèn)值是變量類型的默認(rèn)值0, 同時靜態(tài)變量隨著所屬應(yīng)用程序的結(jié)束而停止存在。
實例變量:
沒有用 static 關(guān)鍵字聲明的字段為實例變量,與靜態(tài)變量不同的是實例變量它必須創(chuàng)建類對象才可以通過對象來引用變量。同時實例變量的初始值為變量類型的默認(rèn)值0。
數(shù)組元素:
一組具有同一屬性的數(shù)據(jù)就稱為數(shù)組,是最常見的數(shù)據(jù)結(jié)構(gòu)之一。當(dāng)創(chuàng)建數(shù)組實例時,數(shù)組的元素就已存在, 數(shù)組元素初始值都是默認(rèn)值0。在沒有對該數(shù)組實例的引用時停止存在;
值參數(shù):
沒有使用 ref 或 out 關(guān)鍵字修飾的參數(shù)為值參數(shù), 值參數(shù)所屬的函數(shù)成員 (方法、實例構(gòu)造函數(shù)、訪問器或運算符) 或匿名函數(shù)在開始調(diào)用時而存在并進(jìn)行初始化值,當(dāng)函數(shù)成員或匿名函數(shù)返回時值參數(shù)就停止存在。
引用參數(shù):
使用修飾符 ref 聲明的參數(shù)為引用參數(shù),引用參數(shù)不會創(chuàng)建新的存儲空間,相反,引用參數(shù)與所屬函數(shù)成員或匿名函數(shù)調(diào)用中的參數(shù)的變量表示相同的存儲位置。
輸出參數(shù):
使用修飾符 out 聲明的參數(shù)為輸出參數(shù), 同樣輸出參數(shù)不會創(chuàng)建新的存儲空間, 相反,輸出參數(shù)與函數(shù)成員或委托調(diào)用中的參數(shù)有著相同存儲位置。 因此,輸出參數(shù)的值始終與基礎(chǔ)變量相同。
局部變量:
顧名思義局部變量就是只在局部的“代碼塊”內(nèi)有效的變量,局部變量經(jīng)常出現(xiàn)在 for 語句、if 語句或 using 語句等等。局部變量的生存期是程序執(zhí)行的一部分,實際生存期取決于程序的具體實現(xiàn)。
3,接收輸出變量
在 C# 程序中可以使用 System 命名空間中 Console 類的 Readline 方法 和 WriteLine 方法實現(xiàn)接收變量并輸出。
- Readline 方法用于接收用戶輸入的一行數(shù)據(jù)并轉(zhuǎn)換為 string 字符串類型輸出
- WriteLine 方法將指定的 value 參數(shù)變量輸出
以下面程序的實現(xiàn)為示例:
using System;class Program
{static void Main(string[] args){Console.WriteLine("請問您喜歡什么編程語言?");string language = Console.ReadLine();Console.WriteLine($"我也喜歡用{language}"); // 我也喜歡用C#Console.ReadKey();}
}
二. 常量(constant)
常量是不可變的值,在編譯時是已知的,在程序的生命周期內(nèi)不會改變。 常量使用 const 修飾符聲明。 僅 C# 內(nèi)置類型(不包括 System.Object)可聲明為 const。 用戶定義的類型(包括類、結(jié)構(gòu)和數(shù)組)不能為 const。 同時也可以使用 readonly 修飾符創(chuàng)建在運行時一次性(例如在構(gòu)造函數(shù)中)初始化的類、結(jié)構(gòu)或數(shù)組,此后不能更改。
1,常量的定義及初始化
常量定義的語法: const <data_type> <constant_name> = value; 或 readonly <data_type> <constant_name> = value;
- 與變量不同,常量在聲明時必須初始化賦值
- data_type 表示數(shù)據(jù)類型,constant_name 表示常量名稱, value 表示常量表達(dá)式
- C# 程序中常量分為編譯期的常量 const 和運行期的常量 readonly
- 筆者建議優(yōu)先考慮 readonly 關(guān)鍵字來聲明常量,詳細(xì)的理由請查看第2條建議
如何在 C# 中定義常量示例程序:
static class Constants
{public const double Pi = 3.14159;public const int SpeedOfLight = 300000;
}class Program
{static void Main(){double radius = 5.3;double area = Constants.Pi * (radius * radius);int secsFromSun = 149476000 / Constants.SpeedOfLight; Console.WriteLine(secsFromSun); // 498}
}
- 通常使用常量為特殊值且提供有意義的名稱, 比如 Pi 和 SpeedOfLight 等常量。
- 常量的輸出與變量相同, 使用 Console 類的 WriteLine 方法。
- 使用類名限定符 (示例代碼的 static) 有助于確保你和使用該常量的其他人了解它是常量,并且不能通過實例化對象來修改。 (提高可讀性)
2,常見的常量類型
整數(shù)常量:
整數(shù)常量可以是十進(jìn)制、二進(jìn)制、八進(jìn)制或十六進(jìn)制的常量, 其中前綴的使用:
- 十進(jìn)制:不使用任何前綴(可以使用U 和 L 分別表示 unsigned 和 long)
- 二進(jìn)制:使用 0b 或 0B 前綴
- 八進(jìn)制: 使用 0 前綴
- 十六進(jìn)制:使用 0x 或 0X 前綴
四種進(jìn)制的代碼示例:
const int decimalLiteral = 42; // 十進(jìn)制
const int binaryLiteral = 0b_0010_1010; // 二進(jìn)制
const int octalLiteral = 0213; // 八進(jìn)制
const int hexLiteral = 0x2A; // 十六進(jìn)制
浮點數(shù)常量:
使用浮點數(shù)常量必須包含小數(shù)點、指數(shù)或同時包含兩者。使用指數(shù)形式必須包含整數(shù)部分、小數(shù)部分或同時包含兩者。有符號的指數(shù)是用 e 或 E 表示的。 浮點常量通常用來表示時間、日期等需要精確到小數(shù)點后幾位的結(jié)果,且結(jié)果不能修改。
一些浮點常量的實例:
const float time = 11.11f;
const float price = 9.99f;
const double data = 11.11;
const double pi = 3.1415926;
字符常量:
字符常量是指用一對單引號括起來的一個字符,如’a’,‘9’,字符常量中的單引號只起定界作用并不表示字符本身。 在 C# 程序中字符常量的主要表示有普通字符 ‘b’、轉(zhuǎn)義序列 ‘\t’、通用字符 ‘\u02C0’。
列舉C# 中字符串轉(zhuǎn)義序列:
轉(zhuǎn)義序列 | 字符名稱 | Unicode 編碼 |
---|---|---|
\’ | 單引號 | 0x0027 |
\" | 雙引號 | 0x0022 |
\\ | 反斜杠 | 0x005C |
\0 | null | 0x0000 |
\a | 警報 | 0x0007 |
\b | Backspace | 0x0008 |
\f | 換頁 | 0x000C |
\n | 換行 | 0x000A |
\r | 回車 | 0x000D |
\t | 水平制表符 | 0x0009 |
\v | 垂直制表符 | 0x000B |
\u | Unicode 轉(zhuǎn)義序列 (UTF-16) | \uHHHH(范圍:0000 - FFFF;示例:\u00E7 =“?”) |
\U | Unicode 轉(zhuǎn)義序列 (UTF-32) | \U00HHHHHH(范圍:000000 - 10FFFF;示例:\U0001F47D = “👽”) |
\x | 除長度可變外,Unicode 轉(zhuǎn)義序列與“\u”類似 | \xH[H][H][H](范圍:0 - FFFF;示例:\x00E7、\x0E7 或 \xE7 =“?” |
使用字符常量轉(zhuǎn)義序列的示例
class Program
{static void Main(){Console.WriteLine("Hello,\t\n world");Console.ReadLine();}
}
字符串常量:
字符串常量是一對雙引號括起來的字符序列,與字符常量不同的地方在于表達(dá)形式、含義和內(nèi)存。字符串常量的聲明是括在雙引號“”里,或者使用@“” 表示取消字符串中的轉(zhuǎn)義符 。字符串常量常用于用戶程序輸入信息、 程序向用戶顯示信息等。
各種形式的字符串常量實現(xiàn):
const string str0 = "hello, C#"; // hello, C#
const string str1 = @"hello, C#"; // hello, C#
const string str2 = "hello \t C#"; // hello C#
const string str3 = @"hello \t C#"; // hello \t C#
const string str4 = "Joe said \"Hello\" to me"; // Joe said "Hello" to me
const string str5 = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me
const string str6 = "\\\\server\\share\\file.txt"; // \\server\share\file.txt
const string str7 = @"\\server\share\file.txt"; // \\server\share\file.txt
const string str8 = "one\r\ntwo\r\nthree";
const string str9 = @"onetwothree";
- 即使表達(dá)形式不同,但是表示的都是相同的字符串常量
- 聲明字符串時可以使用換行和空格
結(jié)語
?? 以上就是對 C# 程序中變量與常量的使用,希望能夠?qū)Υ蠹矣兴鶐椭?。望大家多多支?#xff0c;你們的支持就是筆者創(chuàng)作最大的動力!