C#学习笔记---异常捕获和变量运算符
2024/5/27 11:32:55

异常捕获 使用异常捕获可以捕获出现异常的代码块,防止因为异常抛出造成的程序卡死的情况发生。 try{}catch{}finally{}结构 异常捕获 try {string str=Console.ReadLine()int i=int.Parse(str)Console.WriteLine("输入的字符串数值转为int的数值"+i) }catch {Console.WriteLine("请输入合法数字") }finally {无论正常执行还是是否进行异常捕获 都会执行Console.WriteLine(

Unity运用socket传输信息(同步)
2024/5/27 11:32:55

客户端: 在UGUI中创建两个Button,一个是连接服务器,一个是发送消息的按钮,分别绑定Connection和SendMessage两个函数 并且创建一个InputField和一个Text文本,Text文本用于显示服务器回传的消息,InputField用于输入要发送的消息 以下是代码:1 using System.Collections2 using System.Collections.Generic3 using System..Sockets4 using UnityEngine5 using

每个.NET开发都应掌握的C#特性(Attribute)知识点
2024/5/27 11:32:52

上篇文章讲述了C#反射知识点,本文将介绍C#特性(Attribute)的知识点。C#特性(Attribute)是一种强大的元数据机制,用于为代码元素(如类、方法、属性等)添加信息,以影响它们的行为或提供额外的信息。本文将介绍C#特性每个.开发都应熟悉的知识点,希望对大家开发有一定的帮助。 1、特性的基本概念 公共语言运行时使你能够添加类似于关键字的描述性声明(称为特性),以便批注编程元素(如类型、字段、方法和属性),它是以方括号([])的形式附加到代码元素上,并可包含参数。特性的定义通常是通过创建一个继承

BenchmarkDotNet-Intro
2024/5/27 11:32:52

有些时候我们实现了某个功能 但是仅仅通过有限的几次调用无法知道这个功能的执行效率以及资源占用情况 此时就可以使用 Benchmark 对这个功能进行基准测试 在 dot 中主要使用 BenchmarkDotBenchmarkDot 是一个.的基准测试框架 主要用于测量.程序的性能 它可以帮助开发者编写基准测试 并自动运行这些测试 生成详细的基准报告 BenchmarkDot 的主要功能包括:简化基准测试的编写 通过属性来标记要测试的方法 支持多种基准测试模式 如平均时间、内存分配等 自动进行基准测试的运行

dotnet 推荐 LightWorkFlowManager 轻量的工作过程管理库
2024/5/27 11:32:51

本文将和大家推荐我团队开源的 LightWkFlowManager 轻量的工作过程管理库,适合任何需要执行工作过程的应用逻辑,可以方便将多个工作过程拼凑起来,且自动集成重试和失败处理,以及日志和上报功能这个 LightWkFlowManager 轻量的工作过程管理库是我所在的团队在 GitHub 上使用最友好的 MIT 协议开源的库,请看 https:github.comdotcampusLightWkFlowManager 这个 LightWkFlowManager 轻量的工作过程管理库现在已经在我团队

.net core读取Response.Body
2024/5/27 11:32:50

读取请求体流的demopublic static async Taskstring GetBodyFm(this HttpContext http){var content = string.Emptyvar request = http.Requesttry{request.Body.Position = 0using var reader = new StreamReader(request.Body Encoding.UTF8 leaveOpen: true)var strRequestBody =

C#学习笔记--变量类型的转换
2024/5/27 11:32:50

变量类型的转化: 转换原则 同类型的大的可以装小的,小类型的装大的就需要强制转换。 隐式转换: 同种类型的转换:有符号 long——int——sht——sbyte long l = 1 int i = 1 sht s = 1 sbyte sb = 1 隐式转换 int隐式转换成了long 可以用大范围 装小范围的 类型 (隐式转换) l = i 不能够用小范围的类型去装在大范围的类型 i = l l = i l = s l = sb i = s s = sbulong ul = 1 uint ui =

软件国际化的问题 C#得到当前windows系统的语言版本
2024/5/27 11:32:50

本以为跟国际化无缘,不在软件的考虑范围内,没想到偶尔一个项目还是绕不开,小记一下System.Globalization.CultureInfo.InstalledUICulture.Name 这是获得英文的区域码,也就是zhcn的这种,需要找区域码字典对照。 System.Globalization.CultureInfo.InstalledUICulture.NativeName 区域码对应的名称,如:中文(中国) int lcid = System.Globalization.C

.NET 数据库大数据操作方案(插入、更新、删除、查询 、插入或更新)
2024/5/27 11:32:49

1、功能介绍 海量数据操作M性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 操作数据库达到极限性能,当然你如果不用sqlsugar了解一下原理也可以使用其他M实现 BulkCopy BulkCopy是一种用于高效批量插入大量数据到数据库的技术。其原理是利用数据库系统提供的高性能数据导入接口,将数据以批量的方式一次性写入数据库,而不是逐条插入。这种方法比逐条插入要快得多,因为减少了数据库操作的次数,从而降低了系统开

再谈http请求调用(Post与Get),项目研发的核心一环
2024/5/27 11:32:49

支持. Ce(2.0及以上)与. Framewk(4.0及以上) 【目录】前言Post请求Get请求与其它工具的比较 1【前言】 http请求调用是开发中经常会用到的功能。 在内,调用自有项目的Web Api等形式接口时会用到;在外,调用一些第三方功能接口时,也会用到,因为,这些第三方功能往往是通过http地址的形式提供的,比如:短信服务、在线翻译、地图服务、语音智能、等… 所以说,http请求调用,往往是中大型项目开发必备的核心一环,每个工程师都必须要掌握!!2【Post请求】 http请求调用,又分

CefSharp自定义滚动条样式
2024/5/27 11:32:48

在WinFmWPF中使用CefSharp混合开发时,通常需要自定义滚动条样式,以保证应用的整体风格统一。本文将给出一个简单的示例介绍如何自定义CefSharp中滚动条的样式。 基本思路 在前端开发中,通过CSS来控制滚动条的样式是件寻常的事情。CefSharp也提供了功能强大的API方便开发人员使用c#与JS进行交互。这也给我们提供了一个思路:在CefSharp加载完成后,使用其提供的ExecuteJavriptAsync方法注入JS和CSS代码来自定义滚动条样式。 实现细节 为了排除干扰以及方便介绍,本

C#学习笔记--变量、常量和转义字符
2024/5/27 11:32:48

变量 变量是存储数值的容器,是一门程序语言的最基础的部分。 不同的变量类型可以存储不同类型的数值。 种类: 在C#种一共有14种变量:有符号类型4种 无符号类型4种 浮点数3种 特殊类型( bool string)变量 有符号类型的 范围 字节大小 位容量 sbyte sb=1 128~127 1byte 2^8 int i=2 21亿~21亿 4byte 2^(84) sht s=3 32768~32767 2byte 2^(82) long

执行SQL语句&存储过程的真正【神器】,不用ORM的全选它,比dapper好
2024/5/27 11:32:48

支持. Ce(2.0及以上)与. Framewk(4.0及以上)(注意:升级了,可以覆盖到早期的. Framewk4.0了,而且修复了数据库字段为Null时报错的问题,无敌了!!) 此工具在IDataAccess接口中提供。 已被.圈内多家大厂采用! IDataAccess所在的命名空间是:DeveloperSharp.Framewk.QueryEngine(需从NuGet引用DeveloperSharp最新包) 它主要提供了如下四大功能: (1) 执行Sql语句 (2) 执行Sp存储过程

使用Blazor WASM实现可取消的多文件带校验并发分片上传
2024/5/27 11:32:47

前言 上传大文件时,原始HTTP文件上传功能可能会影响使用体验,此时使用分片上传功能可以有效避免原始上传的弊端。由于分片上传不是HTTP标准的一部分,所以只能自行开发相互配合的服务端和客户端。文件分片上传在许多情况时都拥有很多好处,除非已知需要上传的文件一定非常小。分片上传可以对上传的文件进行快速分片校验,避免大文件上传时长时间等待校验,当然完整校验可以在秒传时使用,有这种需求的情况就只能老实等待校验了。 Blazr WASM提供了在 .环境中使用浏览器功能的能力,充分利用C#和 .能够大幅简化分片上传功

记一次 .NET某账本软件 非托管泄露分析
2024/5/27 11:32:47

一:背景 1. 讲故事 中秋国庆长假结束,哈哈,在老家拍了很多的短视频,有兴趣的可以上B站观看:https:space.bilibili.com409524162 ,今天继续给大家分享各种奇奇怪怪的.生产事故,希望能帮助大家在未来的编程之路上少踩坑。 话不多说,这篇看一个.程序集泄露导致的CLR私有堆泄露的案例,这个泄露和 JsonConvert 有关,哈哈,相信你肯定比较惊讶! 二:WinDbg 分析 1. 到底是哪里的泄露 首先观察一下进程的提交内存的大小,即通过 !address summary 观

Debian12安装.NET7 SDK
2024/5/27 11:32:46

Debian,作为最受欢迎的 Linux 发行版之一,于 2023 年 6 月 10 日正式发布了其最新版本 Debian 12,代号“Bookwm”。Debian 12 带来了许多新特性和改进,其中最引人注目的是 Linux 内核的升级,从之前的 5.10 LTS 升级到了 6.1。 这两天尝试了一下Debian12。准备配置一个开发环境,将各类jdk,sdk,db等安装一遍,有需要的可以借鉴以下。这期更新. SDK安装过程及遇到的问题。 常规操作下,我们使用包管理器apt search dot找到我们

【算法】国庆加班,火锅与Linq.AddRange的奇妙螺旋
2024/5/27 11:32:45

在国庆假期的一个傍晚,小悦正在家中享受火锅美食。她嘴里咀嚼着鲜嫩的牛肉,脸上洋溢着满足的微笑。突然,手机铃声响起,打破了这温馨的氛围。她拿起手机一看,是公司打来的电话。 “小悦,有个紧急的项目需要处理,你能来公司加一下班吗?”电话那头传来领导焦急的声音。 小悦顿时嘟起嘴,不太情愿地离开了火锅桌,踏上前往公司的路程。 一到公司,小悦就开始研究领导交给她的任务:处理一个关于小视频螺旋排序算法的问题。这个问题让她感到有些棘手,但她知道没有退缩的余地。于是,她深吸了一口气,开始认真地研究问题。 在图像处理中,螺旋

.net6下[WPF+yolov5+opencvsharp]
2024/5/27 11:32:44

1. 简介 机缘巧合下写的一个工程,本来是作为商家视觉识别上位机的替代品,但是最后没用上,因此只开发了一半(厂家升级了摄像头和软件) 该工程基于WPF的.6+mvvm 调用摄像头进行识别 opencv开摄像头(不想自己封装win32api),yolov5对图像进行检测 2.引用库MVVMCommunityToolkit.MvvmOpencvOpenCvSharp4 OpenCvSharp4.Windows OpenCvSharp4.WpfExtensions(wpf专供:BitmapSourceCon

Css实现浏览滚动条效果
2024/5/27 11:32:44

Css实现浏览滚动条效果 前言 也是有大半个月没有更新文章了,大部分时间都在玩,然后就是入职的事。今天就更新一个小知识,刷抖音的时候看到的,感觉还不错。 属性介绍 关键属性animationtimeline:动画名称 用于控制动画的时间轴。它可以让你在一个元素上同时播放多个动画,控制它们的开始时间和持续时间,并通过时间轴来管理它们。 代码实现 html div class="topbar"div class="line"div divcss .line{position: fixedtop: 0left:

【ASP.NET Core】在 Mini-API 中注入服务
2024/5/27 11:32:43

经过版本更新,Mini API 的功能逐步完善,早期支持得不太好的 mini API 现在许多特性都可以用了,比如灰常重要的依赖注入。 咱们先来个相当简单的注入测试。来,定义一个服务类,为了偷懒,老周这里就不使用 接口 + 实现类 的方式了。public class MyService : IDisposable {public MyService(){Console.WriteLine($"{nameof(MyService)} 隆重开业")}public void Dispose(){Console.

使用C#创建安装Windows服务程序(干货)
2024/5/27 11:32:37

使用C#创建安装Windows服务程序(干货) 最近在公司要求使用Windows服务作为消息队列的消费者,所以自行研究了一下C#中Windows服务如何创建以及如何使用,以及部署的方式。我是西瓜程序猿,此篇记录一下供大家参考学习。 一、Windows服务概述 1.1Windows服务是什么? Windows服务是在Windows操作系统上,以后台形式运行的应用程序。它们可以在系统启动时自动启动,并且独立于用户登录。Windows服务通常用于执行那些长时间运行、无需用户交互或需要在后台持续执行的任务。

8.邮件发送功能
2024/5/27 11:32:36

这里想补充下上个文章,感觉有点不太行。因为每次设计新的表结构就要去更新一下,所以,干脆随着我要做的功能去展示我的表结构设计,最终再把所有的表结构包括sql语句统计出来,感觉这样更新会方便很多~ 这个文章主要是发送邮件的功能。之前提过,我不是一下子把后端全部完成,然后再一下子搞定后端。所以我前后端是要一起做,然后去完善接口功能。 登录注册这个功能,90%网站都需要。可以不用,但是不能没有。本篇文章主要是实现注册的验证码发放功能(邮件手机号)。 因为发短信得收费,咳咳,所以这里先做的邮件发送验证码。这个在网络

C# 手动解析灰度PNG图片为Bitmap
2024/5/27 11:32:35

问题: 当直接使用文件路径加载8位灰度PNG图片为Bitmap时,Bitmap的格式将会是Fmat32bppArgb,而不是Fmat8bppIndexed,这对一些判断会有影响,所以需要手动解析PNG的数据来构造Bitmap 步骤 1. 判断文件格式 若对PNG文件格式不是很了解,阅读本文前可以参考PNG的文件格式 PNG文件格式详解 简而言之,PNG文件头有8个固定字节来标识它,他们是 private static byte[] PNG_IDENTIFIER = { 0x89 0x50 0x4E 0x4

WFP3D绘图
2024/5/27 11:32:35

WPF本身不支持直接的3D绘图,但是它提供了一些用于实现3D效果的高级技术。 如果你想要在WPF中进行3D绘图,你可以使用两种主要的方法:WPF 3D:这是一种在WPF应用程序中创建3D图形的方式。WPF 3D提供了一些基本的3D形状(如立方体、球体和锥体)以及一些用于控制3D场景和对象的工具(如相机、光源和材质)。 在WPF中,3D对象模型的材质可以使用以下三种DiffuseMaterial:漫反射,反射场景光效果EmissiveMaterial:自发光,类似于电灯 SpecularMaterial:

国庆期间“头像+国旗”玩法是如何实现的?
2024/5/27 11:32:34

前言 随着一年一度的国庆假期越来越近,身边的国庆氛围也越来越重,很多人也开始换上了渐变国旗头像,提前为祖国母亲庆生。那每年都很火的渐变国旗头像要如何制作呢?其实一点也不难!接下来就分享一种渐变国旗头像生成方法。 制作原理 上传原始微信或其他头像,将头像的Image对象用Graphics创建返回GDI+对象,然后用GDI+对象在原始头像指定位置进行追加绘制指定大小的图像渲染显示。 项目架构设计 演示项目为Winfm窗体应用程序,项目具体信息如下: 项目框架:. Framewk 4.8项目架构和窗体设计:五星

[WPF]浅析依赖属性(DependencyProperty)
2024/5/27 11:32:33

在WPF中,引入了依赖属性这个概念,提到依赖属性时通常都会说依赖属性能节省实例对内存的开销。此外依赖属性还有两大优势。支持多属性值,依赖属性系统可以储存多个值,配合Expression、Style、Animation等可以给我们带来很强的开发体验。 加入了属性变化通知,限制、验证等功能。方便我们使用少量代码实现以前不太容易实现的功能。本文将主要介绍依赖属性是如何存取数据的以及多属性值的取值优先级。 CLR属性 CLR属性是private字段安全访问的封装 对象实例的每个private字段都会占用一定的内存

23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑
2024/5/27 11:32:32

一、背景 微信小程序手机号授权接口,从23年8月开始实行付费验证。 文档地址:https:developers.weixin.qq.comminiprogramdevframewkopenabilitygetRealtimePhoneNumber.html 新版手机号授权说明如下: 自2023年8月28日起 【手机号实时验证组件】将需要付费使用。标准单价为:每次组件调用成功,收费0.04元。 【手机号快速验证组件】将需要付费使用。标准单价为:每次组件调用成功,收费0.03元。 两者组件区别是:【手机号

Biwen.QuickApi代码生成器功能上线
2024/5/27 11:32:30

[QuickApi("hellowld")] public class MyApi : BaseQuickApiReqRsp{}使用方式 :dot add package Biwen.QuickApidot add package Biwen.QuickApi.SourceGenerat最后简简单单注册路由: app.MapGenQuickApis("api")Biwen.QuickApi 使用REPR风格写的minimalApi已经写完了 最近看到道友们都玩SourceGen提升代码性能 所以一鼓作气

Visual Studio打包windows服务并实现自动注册与开启
2024/5/27 11:32:30

前提 已经创建并编写好了windows服务程序,且下载了Microsoft Visual Studio Installer Project插件。 创建windows服务程序的参考链接:https:blog.csdn.xiketangyarticledetails126851864 打包步骤 1. 创建打包项目 右键windows服务项目所在的解决方案,搜索setup并创建Setup Project项目。2. 添加应用程序所需文件 右键Application Folder,选择Add项目输出。选择主输出为编

使用 C# 在Word中插入图表
2024/5/27 11:32:29

Wd中的图表功能将数据可视化地呈现在文档中。这为展示数据和进行数据分析提供了一种方便且易于使用的工具,使作者能够以直观的方式传达信息。要通过C#代码来实现在Wd中绘制图表,可以借助 Spire.Doc f . 控件,具体操作参考下文。C# 在Wd中插入柱状图 C# 在Wd中插入折线图 Dll引用 有两种安装Spire.Doc f .库的方法:在Visual Studio中通过NuGet搜索“Spire.Doc”,然后点击“安装”将其引用到程序中。 点击以下链接将Spire.Doc f .下载到本地,解压