有趣文章
文章平均质量分 76
有趣的文章
子不语
偶尔上线,急事请勿等待。
展开
-
好代码是管出来的——.Net中的代码规范工具及使用
Roslyn是一个开源的C#、VB编译器,它提供了丰富的代码分析API,第三方应用可以基于这些API来开发自己的代码分析工具。Roslyn应用在VS2015及以上版本。上面的方式需要对每一个项目都进行独立配置,不但工作量大,而且容易出错导致不同项目中规则集不一致,为了解决这个问题,需要在一个解决方案中共享同一个规则集文件。转载 2023-04-24 14:59:51 · 980 阅读 · 0 评论 -
ChatGPT模型的三层理解
2016年,微软AI Tay,种族歧视,下线。2021年,Facebook,AI将黑人标上了灵长目的标签语言模型的输出特别灵活,导致出错的概率会更大,OpenAI作为一个创业公司,媒体对于GPT的容忍度大一些,如果是大公司做的GPT模型,可能已经下架了。转载 2023-03-02 14:48:23 · 1325 阅读 · 0 评论 -
c#中task与thread的区别及使用讲解
当我们提及多线程的时候会想到thread和threadpool,这都是异步操作,threadpool其实就是thread的集合,具有很多优势,不过在任务多的时候全局队列会存在竞争而消耗资源。thread默认为前台线程,主程序必须等线程跑完才会关闭,而threadpool相反。**总结:**threadpool确实比thread性能优,但是两者都没有很好的api区控制,如果线程执行无响应就只能等待结束,从而诞生了task任务。task简单地看就是任务,那和thread有什么区别呢?转载 2022-12-23 10:56:05 · 1537 阅读 · 0 评论 -
为什么EXE不能超过4GB
为什么EXE不能超过4GB转载 2022-07-06 19:35:47 · 1149 阅读 · 0 评论 -
C#编程,实现定义一套中间SQL可以跨库执行的SQL语句框架
sql框架转载 2022-07-04 17:04:48 · 289 阅读 · 1 评论 -
USB通讯协议基础说明
USB通讯简要转载 2022-07-02 16:26:30 · 1953 阅读 · 0 评论 -
什么是.NET?什么是.NET Framework?什么是.NET Core?
原文链接:https://www.cnblogs.com/1996V/p/9037603.html什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、CTS(CLI)、FCL、Windows下CLR的相关核心组成、Windows下托管程序运行概念、什么是.NET Framework,.NET Core,.NET Standard及一些VS编译器相关转载 2022-04-13 14:49:50 · 713 阅读 · 0 评论 -
计算机技术与软件专业技术资格有哪些?
原创 2022-04-09 17:38:18 · 574 阅读 · 0 评论 -
正则表达式入门教程
一、正则表达式到底是什么东西?正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。你使用过Window转载 2022-04-06 17:43:00 · 1752 阅读 · 0 评论 -
C#编程,Parallel类实现数据并行与任务并行
一、Parallel类 Parallel类提供了数据和任务的并行性;二、Paraller.For()Paraller.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Paraller.For()方法,可以并行运行迭代,迭代的顺序没有定义。在For()方法中,前两个参数是固定的,这两个参数定义了循环的开头和结束。首先描述它的第一个方法For(int,int,Action),前面两个参数代表循环的开头和介绍,第三个参数是个委托,整数参数是循环的迭代次数,该参数被传递给委托引用的方转载 2022-04-06 15:36:18 · 4816 阅读 · 0 评论 -
软件滤波算法的原理和比较
点击图片,放大后查看清晰版本原创 2022-03-10 18:41:24 · 201 阅读 · 0 评论 -
八大常用算法思想
算法和数据结构一直以来都是程序员的基本内功,可以说没有数据结构的基础建设和算法加持,也就没有这将近八十年的信息革命时代。数据结构可以看作是算法实现的容器,通过一系列特殊结构的数据集合,能够将算法更为高效而可靠的执行起来。算法的应用不单只体现在编程中。狭义的来讲,算法可看作是数据传递和处理的顺序、方法和组成方式,就像是各种排序算法等。而广义的来讲,算法更像是一种事物运行的逻辑和规则。太阳东升西落,海水潮汐潮流,月儿阴晴圆缺,这些或许都可以看似一种算法,只不过执行者不是电子计算机,而是自然万物。聊远了。所以转载 2022-02-19 10:31:47 · 860 阅读 · 0 评论 -
编译器的诞生【目录】
来源:mikespook英文原文:http://noeffclue.blogspot.com/2014/05/compiler-part-10-compiling-to-c.html项目地址:https://github.com/rthornton128/calc[01]概述[02]编译、转译和解释[03]编译器设计概览[04]语言设计概述[05]Calc 1 语言规格说明书[06]标识符[07]扫描[08]抽象语法树[09]解析[10]编译到 C编译器流程(一般分析部分属于编译前转载 2022-02-19 10:29:10 · 88 阅读 · 0 评论 -
高效代码审查的十个经验
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。1. 代码审查要求团队有良好的文化团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。“A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影响团队内部的协作,因此需要避免。另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发转载 2022-01-27 17:26:58 · 466 阅读 · 0 评论 -
VS联调多个解决方案的项目
一、项目中经常出现一个解决方案里面有多个程序,如果想按F5启动多个实例进行操作调试那该怎么操作?以前自己都使用附加进程的方法调试,这样的调试不需要按F5,自己只要运行多个程序后,使用vs的附加进程到对应的进程中就可以进行断点调试了。现在学到的一种方法,感觉比较简单和正统,记录于此:1.解决方案右击,选择属性:2.这样你按F5启动调试,程序就自动打开上面的两个程序了,如果这个时候你还想在增加一个实例程序,你可以vs中右键程序集----> 调试----->启动新实例。这样一个解决方案就运行了转载 2022-01-27 11:08:42 · 2162 阅读 · 0 评论 -
基于角色的菜单按钮权限的设计及实现
1、菜单权限的设计5个表的建立:用户表、角色表、菜单表、用户角色表、角色菜单表后台动态加载json数据给前台。 这里的json数据,就是菜单栏的数据(就是通过后台数据查询找出当前用户拥有哪些菜单)用户(操作员、管理员、超级管理员)只能看到自己对应的菜单数据思路:sql语句加上对应的where条件 ,来对查询到的所有数据做进一步的筛选。2、实现步骤:设计表结构,依次往菜单表、角色表、用户表中加入数据,根据页面需要的数据,设计webapi接口方法,通过网页操作将数据加入角色菜单 rel_r转载 2022-01-14 13:39:49 · 1225 阅读 · 0 评论 -
字符串匹配的Boyer-Moore算法
KMP算法并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。下面,我根据Moore教授自己的例子来解释这种算法。假定字符串为"HERE IS A SIMPLE EXAMPLE",搜索词为"EXAMPLE"。首先,"字符串"与"搜索词"头部对转载 2022-01-08 11:44:56 · 109 阅读 · 0 评论 -
.NET的前世今生与将来
前言.NET正式诞生了16年了,目前是微软技术栈的主要开发平台。笔者有幸在2002年在生产环境使用.NET 1.0 beta,一直到现在.NET Core 2.1,见证了.NET从最开始蹒跚学步的婴儿,到现在在各大领域大放异彩的巨人。在过去的10多年中,开始那些年,.NET被质疑、误解,一些开技术人员觉得.NET就是Java的复制品,没有什么值得学习和使用的,而且,一些反微软阵营的技术人员,为了反对而反对。正是由于这些偏见,至今,一些公司仍然不愿意使用.NET,即便.NET从第一天开始就已经提交到ECM转载 2022-01-08 11:31:17 · 407 阅读 · 0 评论 -
MongoDB的客户端管理工具--nosqlbooster
推荐一款MongoDB的客户端工具–nosqlbooster。这个工具还有个曾用名–mongobooster。nosqlbooster立志做“The Smartest IDE for MongoDB”。它支持 MongoDB v2.6-4.0所有版本,并且更新升级及时。它既有免费版,也有加强升级的付费版。nosqlbooster的官网地址为https://nosqlbooster.com。大家如果想直接下载,可以登入下载网址https://nosqlbooster.com/downloads。工具支持转载 2021-12-18 17:35:18 · 10617 阅读 · 0 评论 -
MongoDB 那些事
前言身边一直都有小伙伴在问:MongoDB到底是什么?它有到底什么特性?有什么与众不同?在什么情况下使用MongoDB最合适?以什么样的姿势是最好的?难道就一定要用吗?…说实话,这些问题都问到精髓了,也看得出来你们的急切和真切。有时候大家都比较忙,很难抽出一天的时间,坐而论道,把这些问题掰扯清楚,然后忽如睡醒,豁然开悟。当然,个人也不是专业的”布道者“,所以,通过电话、微信、QQ、钉钉或者其它的办公聊天软件,让我几句话给大家说明白,有些困难,也不切实际。所以,难免有时候,你们是满脸藏不住的哀怨,我也是意犹转载 2021-12-18 17:33:38 · 100 阅读 · 0 评论 -
WPF将窗口置于桌面下方
WPF将窗口置于桌面下方(可用于动态桌面)先来看一下效果:界面元素很简单,就一个Button按钮,然后写个定时器,定时更新Button按钮中的内容为当前时间,下面来介绍下原理,和界面组成。窗口介绍Windows操作系统所有的地方都是窗口,可能这也是系统名字的由来吧,包括你看到的文件夹,桌面,右键菜单,这些都是由界面组成的, 这么多窗口需要有一个合理的显示,就需要用到我们的层级关系,比如两个窗体谁显示在前,谁显示在后。VS给我们提供了一个查找和查看窗口信息的工具,叫做Spy++,在工具里面:打转载 2021-12-18 15:52:27 · 378 阅读 · 0 评论 -
Shell 快速入门
Shell 快速入门定位于快速帮助初学者掌握 Shell 的语法,快速编写 Shell 脚本。对于 Shell 学习者来说,应该将 Shell 当成是工具,掌握了基础的语法之后就直接使用。当后面需要一些更高级的语法或者功能时,再去查找相应的资料。这个系列与其他 Shell 入门教程不同的是:这个系列专注于用最少的知识,让你快速掌握必须的语法,最终实现快速上手的目的。所以在很多地方,我们并不追求大而全,而是追求实用。如果你只是想简单掌握如何使用 Shell,那么你只看前 15 篇就够了。Shell转载 2021-12-18 15:41:31 · 109 阅读 · 0 评论 -
图解排序算法,这五种最热门
说到排序算法,大家估计都比较熟悉,但要你一下子写出来又蒙圈了。所以这篇文章不会讲解所有的排序算法,而是挑选最热门的五种:冒泡排序、选择排序、插入排序、快速排序、归并排序。我们通过图文 + 流程解释 的方式,让大家能快速领悟到各个排序算法的思想,从而达到快速掌握的目的。此外每个排序算法都有对应的 Github 代码实现,可供大家调试理解算法。同时也附上了文章中所画图的 draw.io 数据文件,方便大家根据自己的习惯进行修改。排序算法的仓库地址:java-code-chip/src/main/java/t转载 2021-12-18 15:39:03 · 259 阅读 · 0 评论 -
Log4j2 Jndi 漏洞原理解析、复盘
“ 2021-12-10一个值得所有研发纪念的日子。”一波操作猛如虎,下班到了凌晨2点25。基础组件的重要性,在此次的Log4j2漏洞上反应的淋漓尽致,各种“核弹级漏洞”、“超高危” 等词汇看的我瑟瑟发抖,那么问题真的有那么严重吗?这个让大家普遍加班搞到凌晨的漏洞,到底是什么问题?01—漏洞解析、复现Log4j2的框架设计非常优秀,各种功能均是以内部插件的方式进行的扩展实现,比如我们经常在Xml中定义的,实际对应的则是如下的AppendersPlugin对象而我们在Xml Appenders转载 2021-12-13 13:23:27 · 1720 阅读 · 0 评论 -
[WPF疑难]如何禁用WPF窗口的系统菜单(SystemMenu)
点击窗口左上角图标时弹出来的菜单也就是这里所说的系统菜单(SystemMenu),有时需要禁用(移除)其中的某些或全部菜单项。要全部禁用(移除)菜单项请调用SystemMenuManager.RemoveWindowSystemMenu(Window window)方法,想部分禁用(移除)菜单项则调用SystemMenuManager.RemoveWindowSystemMenuItem(Window window, int itemIndex)方法。值得注意的是禁用了其中的菜单项那么与之相关联的功能也转载 2021-12-11 16:48:54 · 611 阅读 · 0 评论 -
非常简单的string驻留池,你对它真的了解吗
昨天看群里在讨论C#中的string驻留池,炒的火热,几轮下来理论一堆堆,但是在证据提供上都比较尴尬。虽然这东西很基础,但比较好的回答也不是那么容易,这篇我就以我能力范围之内跟大家分享一下一:无处不在的池开发这么多年,相信大家对‘池’ 这个概念都耳熟能详了,连接池,线程池,对象池,还有这里的驻留池,池的存在就是为了复用为了共享,独乐乐不如众乐乐,毕竟一个字符串的生成和销毁既浪费空间又浪费时间,还不如先养着。1. 说说现象通常我们臆想中是这么认为的,定义几个字符串变量,堆上就会分配几个string对象转载 2021-12-11 16:47:05 · 135 阅读 · 0 评论 -
wpf 加载exe程序,嵌入exe程序,隐藏标题等
关键代码 IntPtr notepadHandle =APPIntprt= _process.MainWindowHandle; int style = GetWindowLong(notepadHandle, GWL_STYLE); style = style & ~((int)WS_CAPTION) & ~((int)WS_THICKFRAME); // Removes Caption bar and the sizing bor转载 2021-12-11 16:37:20 · 909 阅读 · 0 评论 -
今天面试了一个开发人员,谈谈面试的体会
公司的ERP项目组开始招人,boss预计在下个季度初期,使公司的管理系统更加完善。量化的目标是有几个模块一定要上线运行,哪怕是有问题,也可以不段修改完善,就怕一直被问题阻挡了视线,看不到目标。于是乎,到网上发招聘公告,去人才市场招聘,在论坛里发招聘帖,也有让同事介绍,各个渠道都尽量用到。说到深圳这个地方,其实是最不缺少人才的城市。每年有大量的毕业生奔向这里,实现自己在深圳打拼出一片天下。也有做了几年想换地方的,有因为和公司不和睦,因各种原因不得不离开公司的。总之,各种原因会导致深圳不缺少人才。我记得一个老转载 2021-12-11 16:35:18 · 170 阅读 · 0 评论 -
[WPF] 实现两个任天堂 Switch 的加载动画
写了两个 Switch 的加载动画,第一个是 Swtich 最常见那个 Loading 动画:其中拆分文字用到了 之前一篇文章 里提到的用 ItemsControl 拆分的方案,文字逐个反转的动画也用了那篇文章里提到的 TimeSpanIncreaser 来控制 BeginTime:<code id="copy_target_0" class="language-XML hljs"><Storyboard BeginTime="{Binding Next, Source={Stati转载 2021-12-11 16:29:59 · 210 阅读 · 0 评论 -
[WPF] 玩玩彩虹文字及动画
1. 前言兴致来了玩玩 WPF 的彩虹文字。不是用 LinearGradientBrush 制作渐变色那种,是指每个文字独立颜色那种彩虹文字。虽然没什么实用价值,但希望这篇文章里用 ItemsControl 拆分文字,以及用工具类提供递增和随机变量的做法可以给读者一些启发,就好了。2. 用 TextBlock 的 Run<code id="copy_target_0" class="language-XML hljs"><TextBlock> <Run Foreg转载 2021-12-11 16:23:01 · 473 阅读 · 0 评论 -
Android的历史与花边
历史现在的Android如日中天。每天150万部的Android设备被激活,全球Android用户有7亿。三星也凭借Android手机,成为第一大智能手机生产商。而Android在2007年最初发布时,当时负责微软移动开发的Scott Horn评论说,“我看不出他们(Android)能有多大的影响”。如今,Android的成功已经不需要预测。移动操作系统份额Android是Google收购的诸多项目的一个。Android之父Andy Rubin最初只想做一个数码相机的操作系统。2005年,Googl转载 2021-12-11 16:17:00 · 146 阅读 · 0 评论 -
高性能计算机传奇
高性能计算机是用网络将多台计算机连接在一起,并构成一个统一的系统,从而拥有远超个人电脑的计算能力。这样利用网络,让计算机合作工作的并行系统又称为集群(cluster)。服务器、分布式计算机、超级计算机都是按照集群的方式组成的。集群服务器是指在网络中为客户提供服务的高性能计算机。一台的服务器往往在同一时间接收到大量的客户请求,然后根据请求启动大量的任务,以回应客户请求。由于客户请求之间可能差异很大,所以相应的任务也有大有小。服务器要均衡负载,合理的分配资源给不同的任务。当我们建立一个网站时,我们通常让网转载 2021-12-11 16:15:43 · 212 阅读 · 0 评论 -
趣味GPS
简介GPS的全称是全球定位系统(the Global Positioning System)。它属于美国政府,并由洛杉矶的联合项目办公室(JPO, Joint Program Office)管理。1957年,苏联发射第一颗人造卫星。为了确定卫星的位置,多个地面基站同时观测卫星发出的电波,并据此计算从基站到卫星的距离。这个想法很快被美国人发展下去: 既然多个地面基站可以确定空中的卫星位置,那么空中的多个基站也就可以确定地面上的位置了。GPS卫星组成的网络就构成这样的一个空中基站网络。地面上的使用者只需要接转载 2021-12-11 16:13:55 · 734 阅读 · 0 评论 -
物联网浅析
1 概述因为工作的内容多与物联网相关,总结下自己在物联网通信,数据采集等方面积累的知识和经验。总结的主要为水利物联网行业相关的经验,我在公司主要负责的是信息化采集工作,包括各种各样的水利信息化设备的数据采集,像RTU,直连式传感器,PLC自控数据等。通过这些年的工作对物联网也有了些自己的见解。物联网,所谓让物联网,无非是让数据联网。当我能从监控中心获取到一个设备的各类数据(监测数据,运行数据等)时,那么就可以理解为这个物 联网了。联网是一个动词,物联网也是一个动态的过程。这个过程就是 数据上行和下行转载 2021-12-10 14:50:28 · 189 阅读 · 0 评论 -
全面了解归并排序算法及代码实现
归并排序算法按照惯例,对于排序算法。我们还是先罗列概念归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。合并通过概念我们也能看出,既然是归并排序,那核心的问题就是如何进行归并了。这可以归结为从小往大的一个合并问题。给定我们一组数据我们通过分治策略,将其拆分。直到不能拆为止,想要达到的转载 2021-12-10 14:16:32 · 192 阅读 · 0 评论 -
C# 位图BitArray使用
原文地址:https://www.cnblogs.com/JulianHuang/p/14942795.html前面聊了布隆过滤器,回归认识一下位图BitMap,阅读前文的同学应该发现了布隆过滤器本身就是基于位图,是位图的一种改进。位图先看一个问题, 假如有1千万个整数,整数范围在1到1亿之间,如何快速确定某个整数是否在这个1千万个整数中呢?乍一看是一个查找问题,循环、二分查找都是常规思路。一个好的答案是存储结构和算法的完美结合, 基于题干上的特征和条件,我们是否有其他思路。对于题干我们使用高中转载 2021-06-28 13:36:10 · 348 阅读 · 0 评论 -
你是不是对MD5算法有误解?
原文链接:https://www.cnblogs.com/JulianHuang/p/14858339.html"MD5加密"纯属口嗨,MD5不是加密算法,是摘要算法。今天小码甲带大家梳理加密算法、摘要算法的定义和场景:伸手党先看答案:加密算法的目的,在于使别人无法成功查看加密的数据,并且在需要的时候还可以对数据进行解密来重新查看数据。而MD5算法是一种哈希算法,哈希算法的设计目的本身就决定了,它在大多数情况下都是不可逆的,即你通过哈希算法得到的数据,无法经过任何算法还原回去。 所以既然不能将数转载 2021-06-07 13:10:22 · 129 阅读 · 0 评论 -
C#编程,事件与委托的区别
原文链接:https://www.cnblogs.com/wujingtao/p/5196834.html如下图所示代码段:class Program{ static void Main(string[] args) { Test obj = new Test(); obj.print += printout1; //绑定printout1方法 obj.print += printout2; //绑定printout2翻译 2021-05-19 18:51:27 · 159 阅读 · 0 评论 -
WPF编程,轻松打造iTunes CoverFlow图片墙翻页效果
原文链接:https://www.cnblogs.com/zhouyinhui/archive/2007/09/27/908213.html1、效果苹果iTunes播放器的CoverFlow效果羡煞旁人,不过有了WPF,我们也可以轻松实现哈,今天费了半天的时间终于搞定,呵呵…程序取的是用户" 我的图片"文件夹下的*.jpg图片,你可以修改代码中的路径或在"我的图片"文件夹下放几张jpg图片就可以看到效果了图片是使用3DTools 提供的2D到3D映射的方式贴图上去的,每张图片都帖在一个3D模型上翻译 2021-05-15 13:16:20 · 481 阅读 · 0 评论 -
C#编程,发布 .NET 5 带运行时单文件应用时优化文件体积的方法
原文链接:https://www.cnblogs.com/Soar1991/p/14771254.html自 .NET 发布起,.NET Framework 运行环境就是其摆脱不掉的桎梏。后来有了 .NET Core ,微软终于将自带运行时和单文件程序带给了我们。即便如此,大部分情况下开发者仍然不太满意:一个简简单单的控制台应用程序,甚至只包含一个 Hello World ,附带运行时的单文件程序打包出来就需要 20M+ 。.NET 程序的发布受一个名为 发布配置文件 (.pubxml) 的 XML 文翻译 2021-05-15 13:06:04 · 1650 阅读 · 0 评论