0. 前言
離職的護士姐妹們,你們如今都在從事什麼工作呢?我做出了一個大膽的決定--跨行,學習.net開發技術。這個想法在一些人看來或許有些不可思議,但對我而言,做自己熱愛的事情比什麼都重要。人生本就充滿了未知與挑戰,只要勇敢邁出嘗試的第一步,便是一個美好的開端。
第一天的學習相對輕鬆,主要是進行各種概念的學前入門。我深入了解了什麼是.net開發,以及這門技術所能實現的強大功能。我選擇學習的開發語言是c#,可以藉助vs(全稱visual studio)、vs code、rider等集成開發環境(ide)進行程式編寫。目前,我已經初步掌握了visual studio的各項功能以及使用過程中的注意事項。
接下來,我將詳細分享我第二天的學習內容,這些都是後續編程運用的重要基礎,主要涵蓋注釋符、快捷鍵、變量、運算符、類型轉換、轉義符等方面。我把自認為比較關鍵的部分記錄如下:
1. 注釋符
注釋符在編程中兼具註銷和解釋的雙重功能。老師曾打趣說,不寫注釋就如同 “耍流氓”,這足以體現注釋的重要性。在c#中,有3種注釋符:
- 單行注釋:使用“//”,在其後輸入注釋內容,這種注釋方式僅對本行有效。例如:
// 这行代码的作用是将Hello World打印到控制台中
Console.WriteLine("Hello,World!");
- 多行注釋:“/要注釋的內容/”,可以用來注釋多行內容。如下所示:
/*
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
*/
- 文檔注釋:“///”,多用於解釋類或方法,其規則相對複雜,目前我還在進一步學習理解當中。
2. 變量的定義與相關知識
2.1存儲變量語法
定義變量時,首先要聲明變量類型和變量名,語法為“變量類型 變量名;”,然後再給變量賦值,即“變量名 = 值;”。在定義變量時,有兩個關鍵要點:一是要準確確定存儲數據的類型,二是要為變量取一個有意義的名字,這樣在後續使用中能更清晰地理解其用途。這裡需要注意的是,“=”並非數學意義上的等於,而是賦值運算符,作用是將等號右邊的值賦予左邊的變量。另外,聲明並賦值變量還有一種簡寫形式:“變量類型 變量名 = 值” 。例如:
// 先声明后赋值
int num;
num = 10;
// 简写形式
int num2 = 20;
2.2常見數據類型
- 整数类型:
int,只能存储整数 ,无法存储小数。例如:int age = 25; - 小数类型:
double,既能存储整数,也能存储小数,小数点后的有效位数为15 - 16位 ,其取值范围大于int。例如:double price = 19.99; - 金钱类型:
decimal,用于存储金钱小数,数值后需加上“m”(大小写均可),如“decimal money = 5000m”。 - 字符串类型:
string,用于存储多个文本,也可存储空值,值需用英文半角双引号括起来,如string zsName = "张三",字符串可以存储空string s = ""。需要注意的是,字符串和字符不同,字符串由多个字符组成。 - 字符类型:
char,用于存储单个字符,不能存储空值,值需用英文半角单引号括起来,如“char c = 'a'” 。
3. 變量的命名規則
變量名要有實際意義,現階段變量名應以26個英文字母開頭,後面可跟字母、數字或下劃線。同時,還需要注意以下幾點:
- 关键字冲突:变量名不能与C#系统中的关键字(显示为蓝色字体)重复。例如,不能将变量命名为“
int”“class”等。 - 大小写敏感:在C#中,大小写是敏感的。“
myVariable”和“MyVariable”是两个不同的变量。 - 作用域內唯一性:同一作用域內,不允許重複定義同名變量 。
3.1命名規範
- Camel命名规范:变量名首单词首字母小写,其余单词首字母大写,常用于变量命名。例如:
int myAge = 28; - Pascal命名规范:每个单词首字母都大写,常用于类或方法命名。例如:
class MyClass { }
4. 賦值運算符
“=”为赋值运算符,它的作用是将等号右边的值赋给左边的变量。由“=”连接的表达式为赋值表达式,赋值表达式的值就是等号左边变量的值,如“int number = 10;” 。在这个例子中,“number”的值为10,整个赋值表达式“int number = 10”的值也为10。
5. “+”號的作用
- 连接:当“
+”号两边有一边是字符串时,它起连接作用 。例如:string str1 = "Hello"; string str2 = "World"; string result = str1 + " " + str2;,此时“result”的值为“Hello World”。 - 相加:当两边都是数字时,执行加法运算。例如:
int num1 = 5; int num2 = 3; int sum = num1 + num2;,“sum”的值为8。
6. 占位符
使用占位符时,先设置占位符{0}、{1}等“挖坑”,再按顺序传入参数“填坑”。传入参数数量需与占位符数量一致,否则多填无效果,少填会抛异常,且占位符按顺序输出。例如:
string name = "张三";
int age = 20;
Console.WriteLine("姓名:{0},年龄:{1}", name, age);
7. 轉義符
转义符由“\”和特殊字符组成,具有特殊意义:
- \\:表示一个“\”。例如:
string path = "C:\\Program Files"; - \n:表示换行。例如:
Console.WriteLine("第一行\n第二行"); - \":表示一个英文半角双引号。例如:
string str = "He said, \"Hello!\""; - \t:表示一个tab键的缩进。例如:
Console.WriteLine("Name\tAge"); - \b:表示一个退格键,放在字符串两端无效果。例如:
string str2 = "Hel\blo";,此时“str2”的值为“Helo”。 - \r\n:Windows系统中表示换行,Windows不识别“\n”。例如:
Console.WriteLine("第一行\r\n第二行"); - @符號:
- 取消“\”在字符中的转义作用,使其仅表示一个“\”。例如:
string path2 = @"C:\Program Files"; - 将字符串按原格式输出。例如:
string str3 = @"This is a multiline string";
- 取消“\”在字符中的转义作用,使其仅表示一个“\”。例如:
8. 算數運算符
- “+”:加法。例如:
int a = 3; int b = 2; int c = a + b;,“c”的值为5。 - “-”:减法。例如:
int d = 5; int e = 3; int f = d - e;,“f”的值为2。 - “*”:乘法。例如:
int g = 4; int h = 3; int i = g * h;,“i”的值为12。 - “/”:除法。例如:
int j = 10; int k = 2; int l = j / k;,“l”的值为5。 - “%”:取余。例如:
int m = 10; int n = 3; int o = m % n;,“o”的值为1。
9. 類型轉換
9.1隱式類型轉換
在c#中,要求等號兩邊參與運算的操作數的類型必須一致,如果不一致,滿足下列條件會發生自動類型轉換,也就是隱式類型轉換:
- 两种类型兼容:例如,
int和double兼容,因为它们都是数字类型。 - 目标类型大于源类型:例如,
double的取值范围大于int,所以可以将int类型的值自动转换为double类型。
int number = 10;
// int --- double,自动类型转换
double d = number;
9.2顯式類型轉換
- 两者类型相兼容:例如
int和double是兼容的。 - 大的转成小的:当需要将取值范围大的类型(如
double)转换为取值范围小的类型(如int)时,需要进行显式类型转换,也称为强制类型转换。 语法:(待转换的类型)要转换的值
double d = 303.6;
// double---int,强制类型转换
int n = (int)d;
Console.WriteLine(n);
Console.ReadKey();
在显式类型转换中,使用“(int) d”是因为要明确告诉编译器将d(double类型)的值强制转换为int类型。这种转换可能会导致数据精度的丢失,比如上述例子中,303.6转换为int类型后变为303,小数部分被舍去。
10. 注意
前面关于\n和\r\n的描述我有点疑惑,通过问AI得到下面的回答:
在 windows 系統中,通常使用 “\r\n” 來表示換行,不過在某些情況下,“\n” 也能起到換行的效果,但嚴格來說二者是有區別的,因此上述表述不完全準確,以下是具體分析:
- “\r\n” 與 “\n” 的含義
- “\r\n”:“\r” 是回車(carriage return),其作用是將光標移到當前行的開頭;“\n” 是換行(line feed),它會將光標移到下一行。在 windows 系統的文本文件和許多程式語言中,傳統的換行符是 “\r\n”,這是從早期的打字機和電傳打字機時代延續下來的習慣,當時需要先回車回到行首,再換行到下一行。
- “\n”:在 unix 和 linux 系統中,通常使用 “\n” 作為換行符。
- 在不同場景中的表現
- 在 C# 语言中:
Console.WriteLine方法在 Windows 系统下,推荐使用 “\r\n” 作为换行符,这样可以确保在 Windows 的命令行环境或其他基于 Windows 的文本处理场景中,换行效果能正确显示。但实际上,使用 “\n” 也能实现换行,这是因为Console.WriteLine方法在处理输出时会对 “\n” 进行一定的转换处理,使其在 Windows 环境下也能实现换行显示。不过,在处理一些严格遵循 Windows 换行标准的场景,如写入文本文件等,如果使用 “\n” 可能会导致换行显示异常。 - 在其他場景中:在 windows 系統的批處理文件(.bat)、文本編輯器等環境中,如果使用 “\n” 作為換行符,可能不會被正確識別為換行,而會將 “\n” 作為普通字符處理,導致無法實現預期的換行效果,只有使用 “\r\n” 才能正確換行。
- 在 C# 语言中:
總結
今天,我跟着老师进行了代码练习,边听边操作,确实加深了对这些知识的理解和记忆。但今天学习的内容较多,还需要更多时间去消化吸收。能自己敲出几行代码,心里充满了成就感,不过也有些地方不太明白,比如显式类型转换中“int n = (int) d;”的具体原理和应用场景,还得再深入研究。未来的学习之路还很长,我会继续努力,不断探索C#编程的奥秘。