【笔记】C#学习笔记

前言

C#学习笔记

代码结构

  • 命名空间名为大坨峰命名
  • 类名为大坨峰命名
  • 文件名通常是类名,但是如果不是类名也能正常运行,不会报错
1
2
3
4
5
6
7
8
9
10
11
12
using 命名空间名.类名;

namespace 命名空间名
{
public class 类名
{
public static void Main(string[] args)
{
...
}
}
}

注释

1
2
3
4
5
// 单行注释

/* 多行注释 */

/// 文档注释

文档注释

定义在类上

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

定义在方法上

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

变量

声明变量

1
数据类型 变量名;

定义变量

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

定义多个变量

1
数据类型 变量名 = 值, 变量名 = 值;

定义和声明多个变量

1
数据类型 变量名 = 值, 变量名 = 值, 变量名;

允许可能出现的null值传递

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

数据类型

整型

byte

1
byte n = 0;

short

1
short n = 0;

int

1
int n = 0;

long

1
long n = 0;

浮点型

float

1
float n = 0.0F;

double

1
double n = 0.0;

十进制类型

decimal

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

布尔类型

1
bool n = true;
1
bool n = false;

字符类型

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": {{ 变量名 }}
}
""";

char

1
char n = '字';

空类型

1
string = null;

值类型和引用类型

  • 值类型
    • 整型数据
    • 浮点型数据
    • bool
    • char
  • 引用类型
    • 内置引用类型数据
      • dynamic
      • object
      • string
    • 自定义引用类型数据
      • class
      • interface
      • delegate
      • record

运算符

算术运算符

  • +-*/%

按位运算符

  • &|<<>>

比较运算符

  • ==!=><>=<=

逻辑运算符

  • &&||!

赋值运算符

  • =

自增自减

  • ++--

三目运算符

  • 如果xtrue则返回y,否则返回z
1
x?y:z

is

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

as

  • 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都不为真时执行的语句;
}

嵌套判断

1
2
3
4
5
6
7
if (条件1)
{
if (条件2)
{
条件1和条件2都为真时执行的语句;
}
}

switch

1
2
3
4
5
6
7
8
9
switch (表达式)
{
case 值:
表达式等于值时执行的语句;
break;
default:
表达式不满足所有值时执行的语句;
break;
}

循环语句

for

1
2
3
4
for (int i = 0; i < 10; i++)
{
...
}

while

1
2
3
4
while(条件)
{
条件满足时执行的语句
}

do…while

1
2
3
4
5
do
{
条件满足时执行的语句
}
while(条件)

控制台输出

1
Console.WriteLine(数据);

窗口输出

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

完成

参考文献

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