摘要:
面试的时候经常被问到c#对象的深浅拷贝实现以及区别,今天我们就来讲一下深拷贝和浅拷贝到底是什么。首先我们讲讲浅拷贝,浅拷贝就是将对象中的所有字段复制到新对象中去,浅拷贝对于值类型和引用类型有不同的影响。值类型的值被复制到副本中后,修改副本中的值不会影响原来对象的值。然而引用类型的属性被复制到副本中后 阅读全文
摘要:
在多线程开发过程中,有时候需要更新UI控件内容,但是在c#多线程Task、Thread、BackgroundWork中不能直接更新UI控件,否则会报调用线程不能访问此对象,因为它由另一个线程拥有The calling thread cannot access this object because 阅读全文
摘要:
DllImport是System.Runtime.InteropServices命名空间下的一个属性类,它的功能是从非托管DLL中暴露函数名称、调用参数、返回结果等必要调用信息,通常用于C#调用其他语言所编译的Dll动态链接库;例如C#通过DllImport调用C++类库做交互,下面我们来讲一下Dl 阅读全文
摘要:
在日常开发过程中,c#调用本地摄像头由很多种方式可以实现,今天我们就来讲一下如何通过Aforge图像处理库来调用本地摄像头并实现抓拍功能。 首先,我们新建一个空白的Winform程序,在Nuget包管理器中搜索Aforge,会出现很多结果,其中安装AForge.Video.DirectShow和AF 阅读全文
摘要:
有时我们需要在图像上添加水印。例如,在图像上添加版权或名称。我们可能还需要在文档中创建水印。 在这篇博客和代码示例中,我解释了如何使用 C# 在图像上编写文本。此代码可用于 Windows 或 Web 应用程序。 首先,将需要添加水印的图片放在程序运行目录,水印示例图片具体如下 其次,在项目中添加“ 阅读全文
摘要:
Dictionary字典在C#中至关重要日常开发用的也很频繁,它是以键值对key、value的形式存值,和哈希表比较像,是一种无序的结构。我们在使用Dictionary时必须先using引用命名空间** System.Collection.Generic后才能正常使用。 接下来我们列举一下Dicti 阅读全文
摘要:
HtmlAgilityPack是一个基于C#的第三方免费开源的微型html解析类库,主要用于解析html文档。虽然是一个轻量型的html解析类库,但它的功能却不弱,为解析DOM已经提供了足够强大的功能支持,在HtmlAgilityPack中最常用的基础类其实不多,对解析DOM来说,也就只有HtmlW 阅读全文
摘要:
nssm是一个轻量级服务封装程序,它可以将普通exe或bat程序封装成windows服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。 这时候有人就会问了,明明已经有开机自启了,为什么要封装成windows服务呢?因为window 阅读全文
摘要:
String在C#中其实是不可变的,每次操作字符串变量增加或减少时,都会重新分配内存。试想一下,如果创建一个循环10000次的字符串加减操作,每次循环都将一个字符连接到字符串,这样内存中就会有10000个字符串,每个字符串仅仅与前一个字符串相伴只是有一个字符不同,性能影响是很大的。这个时候我们可以使 阅读全文