C#常用特性和快捷键

本文最后更新于:2021年9月29日 下午

引言

visual studio号称宇宙第一IDE,每一次的版本更新都会附加好多的新特性和语法糖。我们不可能对所有的特性都了解,但是一些常用的需要记住。本文主要内容就是以一些常用快捷键、特性、语法糖的说明 。

快捷键

列出一些使用VS过程中最常用的快捷键

Ctrl+E,D(ctrl+k,d)

格式化全部代码,让你的代码瞬间整洁起来。

注释

Ctrl+K,C 注释选定内容

Ctrl+K,U 取消选定注释内容

折叠文档内容

CTRL + M, CTRL + O 折叠所有方法

CTRL + M, CTRL + P 展开所有方法

大小写转换

Ctrl+U: 全部变为小写

Ctrl+Shift+U: 全部变为大写

跳转指定行

Ctrl+G

回退到光标上一次的位置

ctrl+减号 非常实用

选中文本

SHIFT + END 选择至行尾

SHIFT + HOME 选择至行开始处

Ctrl+鼠标左键 选中一个矩阵文本 实用

F12相关

F12=Ctrl+鼠标左击 转到所调用过程或变量的定义

Alt+F12 列出所有查找结果,在不页面的情况下查看引用的内容

shift+f12 查找所有引用

调试相关

F9 启用/关闭断点

Ctrl+Shift+F9 删除全部断点

F10 逐过程
F11 逐语句

Ctrl+F10 运行到光标处 实用

窗口相关

Ctrl+W,B 书签窗口

书签 Bookmark 书签非常好用,如果有几千行代码,在寻找代码的时候添加书签找起来要快很多

Ctrl+W,E 错误列表

Ctrl+W,S 解决方案管理器

特性

元组

使用元组需要Nuget安装包 System.ValueTuple

//使用匿名获取
var model = GetFullName();
Console.WriteLine(model.name);
Console.WriteLine(model.age);

//自定义返回参数变量
(string name, string age) = GetFullName();
Console.WriteLine(name);
Console.WriteLine(age);

C#中 ??、 ?、 ?: 、?.

[?] 可空类型修饰符

这个就不用多做说明了

[?:] 三元(运算符)表达

x?y:z

表明假如表达式x为true,则回来y;假如x为false,则回来z

[??] 空兼并运算符(??)

a??b当a为null时则回来b,a不为null时则回来a自身。
空兼并运算符为右结合运算符,即操作时从右向左进行组合的。
如,“a??b??c”的方式按“a??(b??c)”计算。

[?.] NULL查看运算符

int? age=list?.FirstOrDefault()?.Age;
语法解释:假如对象为NULL,则不进行后面的获取成员的运算,直接回来NULL,否则赶回Age

Pattern Matching(匹配模式)

在C#7.0中,引入了匹配模式的玩法,先举个老栗子.一个object类型,我们想判断他是否为int如果是int我们就加10,然后输出,需要如下:

1
2
3
4
5
6
7
object a = 1;
if (a is int) //is判断
{
int b = (int)a; //拆
int d = b+10; //加10
Console.WriteLine(d); //输出
}

那么在C#7.0中,首先就是对is的一个小扩展,我们只需要这样写就行了,如下:

1
2
3
4
5
6
object a = 1;
if (a is int c) //这里,判断为int后就直接赋值给c
{
int d = c + 10;
Console.WriteLine(d);
}

如果有多种类型需要判断怎么办,使用switch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
static dynamic Add(object a)
{
dynamic data;
switch (a)
{
case int b:
data=b++;
break;
case string c:
data= c + "aaa";
break;
default:
data = null;
break;
}
return data;
}

static void main(){
object a = 1;
var data= Add(a);
Console.WriteLine(data.GetType());
Console.WriteLine(data);
}

推荐安装插件

CodeMaid

CodeMaid是一个开源的Visual Studio扩展,用于清理和简化c#、c++、F#、Vb等语言的编码。

参考

干货来袭! C# 7.0 新特性(VS2017可用)