现状:工业—移动互联网—数字化转型(ToC-ToB的转型)
.NET平台
方向
- 数字换转型 ToB业务
- Unity 元宇宙、游戏
- 办公自动化
2021(25岁)—>ASP.NET 一个属于自己的网站
2022(26岁)—>Unity、Go 、架构设计 一款属于自己的游戏
2023(27岁)—>数字化转型、Go、架构设计 一个属于自己的数字化转型工具、自动化办公套件
2024(28岁)—>数字化转型、Go、架构设计 在前沿领域发光发热
2025(29岁)—>数字化转型、Go、架构设计 在前沿领域发光发热
2026(30岁)—>资深架构师
.NET好用的新语法(从C#9.0开始)
顶级语句(Top-Level Statements)-C#9.0(.NET5)
- 无需类,无需main方法
- 同一个项目中只能有一个文件具有顶级语句
- 顶级语句中可以直接使用await语法,也可以声明函数。
Top-level statements: As a means for accelerating adoption and learning of C#, the Main method can be omitted and application as simple as the following is valid:
Console.Write("Hello world!");
dotnet new console -n albertzhaotestsynctax
全局Using指令(Implicitglobal usingdirectives)—C#10(.NET6)
global using xxx;只要有一处用到就应用到整个项目
- 将global修饰符添加到using前,这个命名空间就会应用到整个项目,不用重复using
通常会创建一个专门用来编写全局using代码的C#文件 笔者会通过*.proj文件来实现global using管理 ```csharp
Exe net6.0 enable
enable
- 如果csproj中启用了**<ImplicitUsings>enable<ImpliciUsings>**编译器会自动隐式增加对System、System.LINQ等常用命名空间的引入。
```csharp
<PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
此处用了global using xxx;同一个项目下class1.cs就无需增加了
Using资源管理的问题(C#8.0)—Using声明
如果是嵌套托管资源,一直using释放资源还是挺麻烦的
之前的写法:
USING声明:当代码执行离开变量的作用域时,对象就会被释放。
文件范围的命名空间声明(File-scoped namespaces)—C#10
可空引用类型(Nullable reference types)-C#8
可以提高代码的健壮程度
int a = null;错误写法
int?a = null; 正确写法
string s = null; —>NullReferenceException异常
sting?s
抑制Null警告,没啥用,只会消除编译器的Warning.
Record类型—C#9.0 内容只要一样就相等
小知识:public string Name {get;init;} 只能在构造函数中给属性赋值
public string Name(get;private set;} 可以在类内部赋值,但是不可以在外部赋值
多个构造函数:this(Id,Name) 通过this来调用默认的构造函数