Fork me on GitHub

02 2023 档案

摘要:很多时候,会判断一个值是否为数值类型,数值类型是可以进行算术运算的,表示格式也比较统一,所以在做通用功能时会用到。下面给出了几种用法。 第一版:通用用法,设置具体类型逐一进行判断,这种做法可以灵活设置类型,缺点也是想增加类型,也得人工增加。 bool IsDig(object t) => t swi 阅读全文
posted @ 2023-02-15 20:41 桂素伟 阅读(47) 评论(0) 推荐(0) 编辑
摘要:使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。 https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts 阅读全文
posted @ 2023-02-15 20:17 桂素伟 阅读(70) 评论(0) 推荐(0) 编辑
摘要:string是开发过程中,使用频度最高的类型之一,所以在构建类型时作了很多处理,如“不可变性”,“保留性”等特点。 string的常量是在""引号中进行赋值的。 var str1 = "这是一段文字"; Console.WriteLine(str1); 之后,为了字符串的格式化,引入了$""定义方式 阅读全文
posted @ 2023-02-11 16:52 桂素伟 阅读(38) 评论(0) 推荐(0) 编辑
摘要:访问修符,是OOP中一个很重要的知识点。在C#中,class(类)的访问修饰符有public和internal两种。 类成员(属性,方法,字段,事件等)的访问修饰符public,internal,protected,private,internal protected,protected priva 阅读全文
posted @ 2023-02-11 15:16 桂素伟 阅读(80) 评论(0) 推荐(0) 编辑
摘要:从System.Text.Json诞生,就在努力增加功能和提升性能,在.NET7中,又带来了多态的适配。 下面是一个父类Customer,两个子类,WechatCustomer和LineCustomer。 public class Customer { public string Name { ge 阅读全文
posted @ 2023-02-11 15:03 桂素伟 阅读(363) 评论(0) 推荐(0) 编辑
摘要:在C#中,有int16,用short来定义;有int32,用int定义;用int64,用long来定义。在.NET7中,添加了int128,和unint128,位数更大的整型。 var i16 = short.MaxValue; Console.WriteLine($"Int16(short):{i 阅读全文
posted @ 2023-02-09 20:50 桂素伟 阅读(31) 评论(0) 推荐(0) 编辑
摘要:还是先看看C#中属性的这定义,在初始化和访问上有哪些方式,就能看出required属性有什么不一样的地方了。 属性,是封装字段的,通过get和set访问器可以很好地验证数据的有效性。 public record Order_00 { public Guid Id { get; set; } priv 阅读全文
posted @ 2023-02-09 20:45 桂素伟 阅读(139) 评论(0) 推荐(0) 编辑
摘要:下面汇总了一些VisualStudio“靓点”,有的可能你已经天天在用,用来提升生产力了,不过仍希望本篇对你有所收获。 数值类型格式化 为了看大数值类型方便,C#可以用下划线来分隔一组一组,方便查看。 转时间格式提示 当把时间转成一种格式时,ToString()的参数可以提示这些格式的具体含义。 正 阅读全文
posted @ 2023-02-09 20:38 桂素伟 阅读(51) 评论(0) 推荐(0) 编辑
摘要:本文是“.NET Conf China 2022”上我的一个分享,这里更细化的分享出来。 分享分为四个部分: 制定指示 设计应用 正确测试 性能优化 高性能:不一定是架构出来的,但一定是优化出来的。 制定指标-收集首先把项目中的热路径API和核心API找出来,然后分析每个API是CPU密集型的,还是 阅读全文
posted @ 2023-02-08 20:09 桂素伟 阅读(57) 评论(0) 推荐(0) 编辑
摘要:在WinForm中,有很多添加和修改数据的场景,一般的做法是当点击“添加”按钮时,收集各控件的值,然后赋值给实体类的各个属性,然后再完成保存工作。在修改时,首先把实体的原值,一个个赋值给控件,修改保存时,再反过来把值赋给实体,最后持久化保存。 除了这种做法,用绑定也是可以完成数据的分发和收集,绑定可 阅读全文
posted @ 2023-02-08 20:01 桂素伟 阅读(112) 评论(0) 推荐(0) 编辑
摘要:在很多WinForm的程序中,会有客户端之间相互通信的需求,或服务端与客户端通信的需求,这时就要用到TCP/IP的功能。在.NET中,主要是通过Socket来完成的,下面的例子是通过一个TcpListerner作为监听,等待TcpClient的连接,连接成功后就可以利用NetStream进行信息互通 阅读全文
posted @ 2023-02-07 21:29 桂素伟 阅读(90) 评论(0) 推荐(0) 编辑
摘要:在桌面程序里,一般日志记录到文件里就可以了,但有的时间,也需要在窗体上动态滚动显示,这时,就需要引入日志框架了。 这里引入的依旧是NLog(在我的Mini API系统里,用的也是NLog)。首先要从Nuget中引入NLog.Windows.Forms,然后添加NLog.config,设置“始终复制” 阅读全文
posted @ 2023-02-07 21:23 桂素伟 阅读(135) 评论(0) 推荐(0) 编辑
摘要:WebView是WinForm框架中一个控件,用来对网页信息交互,有时Web自己开发的,有时Web是三方的。 下面通过一个例子来看看WebView2的使用。 首先看Web的逻辑,是一个商品添加页面,用AlpineJS和BootStrap来开发的,业务上点击添加按钮,弹出modal框窗,然后保存结果, 阅读全文
posted @ 2023-02-07 21:18 桂素伟 阅读(657) 评论(0) 推荐(0) 编辑
摘要:在.NET中,画图主要是通过Graphics类实现的,这个类主要通过两类方法完成画图,一类是DrawXXX,画各种线条图形;另一类是FillXXX,用各种形状,填充各种图形。Graphics是画板,Draw各个方法是各种盏笔(不过在调用Draw方法时,参数需要一个Pen对象),Fill的各个方法就是 阅读全文
posted @ 2023-02-07 21:10 桂素伟 阅读(138) 评论(0) 推荐(0) 编辑
摘要:winform+api是一种对接数据模式,在本例中,为了方便,开发两个天生具有与后台api对接的用例控件,并且把他们封闭成单独控件,以供多次使用。 提示:此实例不是生产使用,仅作演示,有不完善地方,重点关注流程和自定义控件。 本例为API Server,用户控件项目,使用控件项目。 API Serv 阅读全文
posted @ 2023-02-07 21:05 桂素伟 阅读(179) 评论(0) 推荐(0) 编辑