(2)從護士到c#開發者-c#入門基礎:變量、運算符與類型轉換

(2)從護士到c#開發者-c#入門基礎:變量、運算符與類型轉換

身為護士的我毅然跨界投身 c# 編程學習,在此分享第二天學習內容,涵蓋變量、運算符、轉義符等關鍵知識要點 。

最后更新 2025/2/22 下午7:20
勇敢的天使
预计阅读 10 分钟
分类
分享
专题
從護士到c#開發者
标签
.NET C# 轉行開發 編程

0. 前言

離職的護士姐妹們,你們如今都在從事什麼工作呢?我做出了一個大膽的決定--跨行,學習.net開發技術。這個想法在一些人看來或許有些不可思議,但對我而言,做自己熱愛的事情比什麼都重要。人生本就充滿了未知與挑戰,只要勇敢邁出嘗試的第一步,便是一個美好的開端。

第一天的學習相對輕鬆,主要是進行各種概念的學前入門。我深入了解了什麼是.net開發,以及這門技術所能實現的強大功能。我選擇學習的開發語言是c#,可以藉助vs(全稱visual studio)、vs code、rider等集成開發環境(ide)進行程式編寫。目前,我已經初步掌握了visual studio的各項功能以及使用過程中的注意事項。

接下來,我將詳細分享我第二天的學習內容,這些都是後續編程運用的重要基礎,主要涵蓋注釋符、快捷鍵、變量、運算符、類型轉換、轉義符等方面。我把自認為比較關鍵的部分記錄如下:

1. 注釋符

注釋符在編程中兼具註銷和解釋的雙重功能。老師曾打趣說,不寫注釋就如同 “耍流氓”,這足以體現注釋的重要性。在c#中,有3種注釋符:

  1. 單行注釋:使用“//”,在其後輸入注釋內容,這種注釋方式僅對本行有效。例如:
// 这行代码的作用是将Hello World打印到控制台中
Console.WriteLine("Hello,World!");
  1. 多行注釋:“/要注釋的內容/”,可以用來注釋多行內容。如下所示:
/*
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
*/
  1. 文檔注釋:“///”,多用於解釋類或方法,其規則相對複雜,目前我還在進一步學習理解當中。

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#中,要求等號兩邊參與運算的操作數的類型必須一致,如果不一致,滿足下列條件會發生自動類型轉換,也就是隱式類型轉換:

  • 两种类型兼容:例如,intdouble兼容,因为它们都是数字类型。
  • 目标类型大于源类型:例如,double的取值范围大于int,所以可以将int类型的值自动转换为double类型。
int number = 10;
// int --- double,自动类型转换
double d = number;

9.2顯式類型轉換

  • 两者类型相兼容:例如intdouble是兼容的。
  • 大的转成小的:当需要将取值范围大的类型(如double)转换为取值范围小的类型(如int)时,需要进行显式类型转换,也称为强制类型转换。 语法(待转换的类型)要转换的值
double d = 303.6;
// double---int,强制类型转换
int n = (int)d;
Console.WriteLine(n);
Console.ReadKey();

在显式类型转换中,使用“(int) d”是因为要明确告诉编译器将ddouble类型)的值强制转换为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” 才能正確換行。

總結

今天,我跟着老师进行了代码练习,边听边操作,确实加深了对这些知识的理解和记忆。但今天学习的内容较多,还需要更多时间去消化吸收。能自己敲出几行代码,心里充满了成就感,不过也有些地方不太明白,比如显式类型转换中“int n = (int) d;”的具体原理和应用场景,还得再深入研究。未来的学习之路还很长,我会继续努力,不断探索C#编程的奥秘。

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2025/8/13

推薦一款高性能狀態機管理解決方案

在實際軟體開發中,尤其是工業軟體,每一款設備都有複雜的狀態以及狀態之間的切換的功能需求,在這種情況下,如何管理狀態以及狀態之間切換,和對應狀態下的功能控制,成為非常重要的一個問題。

继续阅读
同分类 / 同标签 2025/3/18

(7)從護士到c#開發者--面向對象編程基礎

作為一名從護理行業轉行的程式設計師,我將分享如何通過醫護工作經驗來理解面向對象編程的概念。本文將居間類、對象、屬性、方法等面向對象的核心概念,並結合醫療保健領域的實例來加深理解。

继续阅读