Record
1、C#中的==运算符默认是判断两个变量指向的是否是同一个对象,即使两个对象内容完全一样,也不相等。可以通过重写Equals方法、重写==运算符等来解决这个问题,不过需要开发人员编写非常多的额外代码。
2、在C#9.0中增加了记录(record)类型的语法,编译器会为我们自动生成Equals、GetHashcode等方法。
public record Person(string FirstName, string LastName);
3、Person p1 = new Person("Yang", "Zack");
Person p2 = new Person("Yang","Zack");
Person p3 = new Person("Gates", "Bill");
Console.WriteLine(p1);
Console.WriteLine(p1==p2);
Console.WriteLine(p1==p3);
Console.WriteLine(p1.FirstName);
4、通过反编译查看record的内幕。
source generator
1、把以前需要在运行期需要进行Emit代码生成的工作放到编译器,提升程序的运行时性能。比如EF Core中代理子类的生成,Dapper的优化、正则表达式的优化、AutoMapper的优化等。
2、比Emit更加的对NativeAOT友好。
3、案例 E:\主同步盘\我的坚果云\读书笔记及我的文章\技术学习笔记\SourceGenerator\AutoMapper2
4、业务系统的用途:根据数据字典等业务文件生成代码。
5、技术详细讲解,搜索《杨中科 会写代码的代码-Source Generator》元组
元组
(char Xing,string Ming)ParseName(string name)
{
char xing = name[0];
string ming = name.Substring(1);
return (xing, ming);
}
(char xing, string ming) = ParseName("杨中科");
Console.WriteLine($"姓{xing},名{ming}");
分析原理
解构
自定义类用类似上面的元组的赋值效果。类可以定义一个Deconstruct方法,然后返回值用out参数定义。
record Color(byte Red,byte Green,byte Blue)
{
public void Deconstruct(out byte red,out byte green,out byte blue)
{
red = Red;
green = Green;
blue = Blue;
}
}
顶级语句
1、直接在C#文件中直接编写入口方法的代码,不用类,不用Main。经典写法仍然支持。反编译一下了解真相。
2、顶级语句中可以直接使用await语法,也可以声明函数
可空引用类型
1、csproj中<Nullable>enable</Nullable>启用可空引用类型检查。
2、在引用类型后添加“?”修饰符来声明这个类型是可空的。对于没有添加“?”修饰符的引用类型的变量,如果编译器发现存在为这个变量赋值null的可能性的时候,编译器会给出警告信息。
Minimal API
让ASP.NET Core项目更简单。
WebApplication.Create()返回的WebApplication类型中有Configuration等类型,而且实现了IApplicationBuilder接口,因此可以兼容旧版ASP.NET Core中的用法。
作者提供 · 依据项目说明和技术参数生成
架构概览供参考,具体实现以源码为准。
按识别到的业务模块估算源码可见程度,不代表开源许可、功能完整或运行通过。
点文件目录里的文件名可以在线看代码;看不懂某个文件,可以在代码页下面请 AI 解读, 配置文件、建库脚本、说明文档还能选「部署 / 配置说明」,告诉你部署时要改哪几处。
NETWORKCOMMS通信框架WINFORM窗体程序文件传输示例
本示例基于winForm技术,使用C#语言。Networkcomms通信框架是国外的一款基于C#编写的网路通信软件,基于这个框架进行文件传输,就是文件的上传下载,感觉这个功能是比较有用的。2016年用这个框架开发的winform窗体程序,现在还在用,所以稳定性应该没有问题。
登录看价
浏览 196
SNMP仿真客户端
一、源码描述环境:VS2019,数据库:无二、功能介绍SNMP仿真客户端能够模拟一个简单的网络环境,包括网络设备和应用程序。用户可以通过自定义(如:OID:1.2.3.2.2.3,Type :Integer,Value:1)来模拟特定的网络设备和应用程序。
登录看价
浏览 142
仓库管理系统
比较难得的C/S仓库管理系统,界面好看,涵盖了入库管理、出库管理、货物查询、货架管理等功能,适合毕业设计和小型企业仓储管理使用。
登录看价
浏览 317
商铺租赁管理系统
使用.Net6+SunnyUI+Sqlite开发,关键点技术:1、与sqlite数据库交互;2、登录页面登录跳转进入主窗体;3、授权(激活)机制处理;4、在线检查新版本,并实现在线更新(包括sqlite数据库更新);5、程序打包成exe安装包;6、激活工具实现;7、商铺出租的基本功能
登录看价
浏览 382
看中了这套但要的不完全一样?把需求说清楚,我们安排开发者跟您联系, 评估能不能在它的基础上改,以及大概要多少钱。
已登录
打开手机微信,使用「扫一扫」
正在准备微信登录
首次使用将自动创建账号;已有微信账号直接登录