现状:工业—移动互联网—数字化转型(ToC-ToB的转型)

image.png
WPF—>WebView2

.NET平台

image.png

方向

  • 数字换转型 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:

  1. Console.Write("Hello world!");

image.png
image.png
dotnet new console -n albertzhaotestsynctax
image.png

全局Using指令(Implicitglobal usingdirectives)—C#10(.NET6)

global using xxx;只要有一处用到就应用到整个项目

  • 将global修饰符添加到using前,这个命名空间就会应用到整个项目,不用重复using
  • 通常会创建一个专门用来编写全局using代码的C#文件 笔者会通过*.proj文件来实现global using管理 ```csharp

    Exe net6.0 enable
    enable

  1. - 如果csproj中启用了**<ImplicitUsings>enable<ImpliciUsings>**编译器会自动隐式增加对SystemSystem.LINQ等常用命名空间的引入。
  2. ```csharp
  3. <PropertyGroup>
  4. <ImplicitUsings>enable</ImplicitUsings>
  5. </PropertyGroup>

image.png
此处用了global using xxx;同一个项目下class1.cs就无需增加了
image.png
image.png

Using资源管理的问题(C#8.0)—Using声明

如果是嵌套托管资源,一直using释放资源还是挺麻烦的
之前的写法:
image.png
USING声明:当代码执行离开变量的作用域时,对象就会被释放。
image.png
image.png
image.png

文件范围的命名空间声明(File-scoped namespaces)—C#10

image.png

可空引用类型(Nullable reference types)-C#8

可以提高代码的健壮程度
int a = null;错误写法
int?a = null; 正确写法
string s = null; —>NullReferenceException异常
sting?s
image.png
抑制Null警告,没啥用,只会消除编译器的Warning.
image.png

Record类型—C#9.0 内容只要一样就相等

image.png

小知识:public string Name {get;init;} 只能在构造函数中给属性赋值
public string Name(get;private set;} 可以在类内部赋值,但是不可以在外部赋值
image.png
image.png
image.png
多个构造函数:this(Id,Name) 通过this来调用默认的构造函数
image.png
image.png