【笔记】C#学习笔记

前言

C#是微软推出的一种基于.NET框架和后来的.NET的、面向对象的高级编程语言。(维基百科

主方法

  • 命名空间名为大坨峰命名
  • 类名为大坨峰命名
  • 文件名通常是类名,但是如果不是类名也能正常运行,不会报错
1
2
3
4
5
6
7
8
9
10
namespace 命名空间名
{
public class 类名
{
public static void Main(string[] args)
{
...
}
}
}

注释

1
// 单行注释
1
/* 多行注释 */
1
/// 文档注释

文档注释

定义在类上

1
2
3
/// <summary>
/// 类描述
/// </summary>

定义在方法上

1
2
3
4
/// <summary>
/// 方法描述
/// </summary>
/// <param name="参数名">参数描述</param>

输出语句

1
using System;
1
Console.WriteLine(数据);

变量

声明变量

1
数据类型 变量名;
1
数据类型 变量名1, 变量名2;

定义变量

  • 整型数据可以为浮点型数据赋值
  • 浮点型数据不可以为十进制数据赋值
1
数据类型 变量名 = 值;
1
数据类型 变量名1 = 值, 变量名2 = 值;
1
数据类型 变量名1 = 值, 变量名2;

可空类型

1
数据类型? 变量名 = null;

基本数据类型

  • 值类型
    • 整型
    • 浮点型
    • 字符型
    • 布尔型
  • 引用类型
    • 内置引用类型数据
      • dynamic
      • object
      • string
    • 自定义引用类型数据
      • class
      • interface
      • delegate
      • record
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
byte a = 127;

short b = 32767;

int c = 2147483647;

long d = 9223372036854775807L;

float e = 3.14F;

double f = 3.14;

char g = '';

boolean h = true;

十进制类型

decimal

  • 范围[-7.910^28,7.910^28]
1
decimal n = 0.0M;

字符串类型

string

1
string n = "字符串";
格式化字符串
1
string n = $"{变量名}";
原始字符串
  • 由成对的三个及以上双引号组成的字符串为原始字符串
1
string n = """字符串""";
1
string n = """"字符串"""";
  • 原始字符串可以包含换行信息,以结尾的引号作为行开头
1
2
3
string n = """
字符串
""";
  • 原始字符串也可以使用格式化字符串
1
string n = $"""{变量名}""";
  • 原始字符串可以直接存放JSON格式的字符串
1
2
3
4
5
string n = """
{
"key": "value"
}
""";
  • 在JSON格式的字符串中使用格式化字符串,需要使用$$标记,变量需要用{{}}标记
1
2
3
4
5
string n = $$"""
{
"key": {{ 变量名 }}
}
""";

运算符

算术运算符

  • +(正号)、-(负号)
  • +(加号)、-(减号)、*/%
  • ++(自增)、--(自减)

关系运算符

  • ><>=<===!=

逻辑运算符

  • &&||!

赋值运算符

  • =+=-=*=/=%=
  • &=|=^=<<=>>=

按位运算符

  • &|^~<<>>

类型检查运算符

  • x的类型如果是T则返回true,否则返回false
1
x is T

类型转换运算符

  • x的类型如果是T则返回转换为T类型的x,否则返回null
1
x as T

空值合并运算符

  • 如果x的值不为null,则返回x的值
  • 如果x的值为null,则返回y的值
1
x ?? y

分支语句

if语句

1
2
3
4
if (布尔表达式)
{
布尔表达式成立时执行的代码;
}
1
2
3
4
5
6
7
8
if (布尔表达式)
{
布尔表达式成立时执行的代码;
}
else
{
布尔表达式不成立时执行的代码;
}
1
2
3
4
5
6
7
8
9
10
11
12
if (布尔表达式1)
{
布尔表达式1成立时执行的代码;
}
else if (布尔表达式2)
{
布尔表达式2成立时执行的代码;
}
else
{
以上布尔表达式都不成立时执行的代码;
}
1
2
3
4
5
6
7
if (布尔表达式1)
{
if (布尔表达式2)
{
布尔表达式12都成立时执行的代码;
}
}

switch语句

  • C语言的switch语句具有穿透行为,在每个case语句中,必须使用break跳出seitch语句
1
2
3
4
5
6
7
8
9
10
11
12
switch (变量名)
{
case1:
变量值为值1时执行的代码
break;
case2:
变量值为值2时执行的代码
break;
defautl:
变量值不为以上任何值时执行的代码
break
}

循环语句

while 语句

1
2
3
4
while (布尔表达式)
{
布尔表达式成立时反复执行的代码;
}

do…while 语句

1
2
3
4
do
{
布尔表达式成立时反复执行的代码;
} while (布尔表达式);

for 语句

1
2
3
4
for (int i = 起始值; 布尔表达式; i++)
{
布尔表达式成立时反复执行的代码;
}

break关键字

  • 跳出循环
1
2
3
4
while (1)
{
break;
}

continue关键字

  • 结束当前循环,开始下一次循环
1
2
3
4
while (1)
{
continue;
}

三元运算

1
数据类型 变量名 = 布尔表达式 ? 布尔表达式成立时返回的结果 : 布尔表达式不成立时返回的结果;

弹窗

  • 只能输出字符串
1
MessageBox.Show("数据");

完成

参考文献

哔哩哔哩——朝夕教育
哔哩哔哩——全栈ACE