C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。
文章浏览阅读389次。在Task创建并执行后,如果状态发生了变化,需要取消正在执行中的Task,除了使用主线程上的共享变量来判断之外,更优雅的方式就是就是用CancellationTokenSource来取消任务的执行。
文章浏览阅读991次,点赞20次,收藏8次。System.IO.Pipelines 是一个库,旨在使在 .NET 中执行高性能 I/O 更加容易。 该库的目标为适用于所有 .NET 实现的 .NET Standard。
文章浏览阅读1k次。PuppeteerSharp 是一个用于在 .NET 平台上控制无头(Headless) Chrome 浏览器的库。它允许开发者通过编程方式模拟浏览器行为,执行网页操作,截取网页截图,获取网页内容,可以把网页转换成PDF等等_pupeteersharp 调试
文章浏览阅读305次。使用WScript来实现,WScript是一个基于windows系统脚本宿主对象的根对象,Wscript能够实现模拟键盘,向激活的窗口发送字符串和键盘字符,弹出定时对话框,读写注册表,启动程序,创建快捷方式等功能_c# 在桌面创建快捷方式
文章浏览阅读475次。从浏览器的Html文本中获取图片链接并保存到本地,同时对图片的分辨率和品质进行处理,以满足某些平台的规格需求_c#网页图片下载
文章浏览阅读331次,点赞7次,收藏7次。今天用C#调用了一下腾讯混元大模型,调用代码贴一下,具体的效果等深入使用后再来评价。
文章浏览阅读816次,点赞18次,收藏8次。NUnit是一个开源的.Net单元测试框架,经常被用来在.Net体系下做白盒测试
文章浏览阅读98次。Ping是一种常用的测试网络连接的工具,可以测试网络延迟和连接状况,以及判断网络是否可用。在C#中可以通过框架类库中的Ping类来实现Ping功能_c# ping 设备
文章浏览阅读414次。盘古分词组件需要配合其字典文件使,请将资源压缩包里的Dictionaries文件夹改名为Dict后,复制到项目的bin目录下
文章浏览阅读964次,点赞14次,收藏7次。xUnit.net 是 NUnit 的作者Jim Newkirk搞的一个新的单元测试框架,目的是解决 NUnit 存在的一些问题和缺点,并在框架中加入一些最佳实践和扩展能力。
文章浏览阅读676次,点赞8次,收藏10次。MSTest是微软官方提供的.NET平台下的单元测试框架
文章浏览阅读168次,点赞5次,收藏2次。多个进程之间,通过操作未映射到磁盘上现有文件的内存映射文件,可以实现数据共享和类似进程间通讯的功能。
文章浏览阅读591次,点赞11次,收藏2次。NPOI是POI项目的.NET迁移版本。POI是一个开源的Java 读写 Excel、Word 等微软Ole2组件文档的项目;使用NPOI可以在没有安装Office或者相应环境的机器上对Word或Excel文档进行读写操作。_c# excel工具类、
文章浏览阅读493次,点赞13次,收藏3次。Log4Net是从Java的log4j移植过来的,功能也与log4j类似,可以把日志信息输出到文件、数据库、控制台、Windows 事件日志、远程系统日志服务等不同的介质或目标_log4net记录到win事件
文章浏览阅读166次。通过性能计数器类 PerformanceCounter 传入计数器名称,获取对应的系统指标数据,以便进行分析和参考。通过System.Management类库中的ManagementObjectSearcher类实现对管理信息的查询,比如:主板信息、内存信息、硬盘信息、显卡信息、声卡信息、网卡信息、生产商和生产日期等。_c# 获取硬件信息
文章浏览阅读438次,点赞17次,收藏2次。C# 将应用程序注册成服务_c#注册服务
文章浏览阅读299次。Yaml 格式的配置文件简洁小巧,大概比json格式还要小三分之一,很多主流软件包括IDE都使用Yaml格式来做配置文件,日常开发的时候也可以利用其优点来存储序列化后的对象
文章浏览阅读49次。用C# 写一个图片缩放并居中的示例_c# 绘制图片 文字居中
文章浏览阅读201次。用一个二进制字符串参数来表示多个状态位信息是一种节约空间的做法,比如三消游戏中的棋盘,每一个格子可能含有多种障碍或棋子,预先给每种障碍或棋子定义好编号,编号映射到二进制字符串上的索引,有出现就置为1;最后将这个二进制串转换为十进制的数值,就得到了一个长度短的多的字符串,做持久化或序列化时就大大减少了对空间的占用;这是一个经典的用时间换空间的操作,不过这个十进制数值可能非常大,远远超出一般数值类型的范围,所以就需要用到BigInteger 类型。_c# biginteger
文章浏览阅读24次。开发Windows桌面程序时有时候需要操作注册表,很有必要来个工具类;访问注册表的路径示例: @"SYSTEMCurrentControlSetServices" 需要对 做转义。
文章浏览阅读130次。SharpZipLib(#ziplib,以前称为NZipLib)是一个完全用C#编写的用于Zip、GZip、BZip2和Tar的压缩库,适用于.NET。它被实现为一个程序集(可安装到GAC中),因此可以轻松地集成到其他项目中(任何.NET语言)。_sharpziplib
文章浏览阅读415次。Predicate表示定义一组条件并确定指定对象是否符合这些条件的方法。Comparison表示比较同一类型的两个对象的方法。本文主要介绍.NET Framework中自带的泛型委托Predicate和Comparison的使用。_.net predicate
文章浏览阅读798次。以应用程序的root为基础,遍历应用程序在Heap上动态分配的所有对象,通过识别它们是否被引用,来确定哪些对象是已经死亡的,哪些仍需要被使用。但你的代码中还是可以使用.NET Framework中GC的某些方法进行手动回收,前提是必须要深刻理解GC的回收原理,否则手动调用GC在特定场景下很容易干扰到GC的正常回收甚至引入不可预知的错误。:不能在析构函数中释放托管资源,因为析构函数是由垃圾回收器调用的,可能在析构函数调用之前,类包含的托管资源已经被回收了,从而导致无法预知的结果。与析构函数的区别主要是,_c# 析构函数和dispose
文章浏览阅读603次。Func是.NET Framework中自带的泛型委托,可以接收一个或多个输入参数,并且有返回值,和Action类似,.NET基类库也提供了多达16个输入参数的Func委托,输出参数只有1个。_.net常用的泛型委托
文章浏览阅读287次。从 .NET Framework 版本2.0 开始, AutoResetEvent 和ManualResetEvent 派生自 EventWaitHandle 类。在 ManualResetEvent 功能上等效于 EventWaitHandle 使用创建的EventResetMode.ManualReset。使用 EventResetMode.AutoReset 标志创建的 EventWaitHandle 会在释放单个等待线程后自动进行重置。_c#autoresetevent
文章浏览阅读173次。使用Nuget搜索sharpcompress,点击安装即可。1).zip文件压缩代码。2).zip文件解压代码。_sharpcompress 压缩
文章浏览阅读347次。委托(delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。事件是一种特殊的多播委托,仅可以从声明事件的类或结构中对其进行调用。类或对象可以通过事件向其他类或对象通知发生的相关事情。本文主要介绍C#中委托和事件的使用总结。
文章浏览阅读160次。泛型类提供一组键到一组值的映射。每次对字典的添加都包含一个值和与其关联的键。使用其键检索值的速度非常快,接近 O (1) ,因为。的内存占用的少,但是插入的删除的话数组要比树慢。树是O(log2N),数组是O(N)。该类是作为哈希表实现的。检索的速度取决于为指定的类型的哈希算法的质量。排序的键值对,且无重复。内部实现的差异却很大,需要使用比较器实现来执行键比较。,则此构造函数使用默认的泛型相等比较器。泛型接口,则默认比较器使用该实现。的内部实现是红黑二叉搜索树,而。的内部是两个数组,分别存储。_c# sorteddictionary
文章浏览阅读484次。让我们看看如何使用 C# 的工具环境类来编写 C# 程序,以使用环境类获取和打印命令行参数。了解了有关 C# 的所有知识后,我们现在将了解 C# 中 system.environment 类的用途之一,然后我们将学习编写一个获取并打印命令行参数的程序。基本上,它将接受字符串作为参数,并将其返回类型作为字符串。在深入了解该程序之前,我们必须详细了解什么是环境类,所以让我们学习一下。
文章浏览阅读940次。System.Timers.Timer类:定义一个System.Timers.Timer对象,然后绑定Elapsed事件,通过Start()方法来启动计时,通过Stop()方法或者Enable=false停止计时。Timer控件只有绑定了Tick事件和设置Enabled=True后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。在上面所述的三种计时器中,第一种计时器和它所在的Form处于同一个线程,因此执行的效率不高;_c# timer控件