C#队列的简单使用

队列的特性很简答,就是先进先出,一般利用数组来实现。实现队列自然要实现几个函数:入队,出队,判断队满,判断队空,获得队头,队尾。实现队列的关键在于队头指针和队尾指针的设置:假设初...

2023-01-01

C#中值类型和引用类型的区别

一、值类型和引用类型的区别.NET的类型可以分为两类:值类型和引用类型。这两种类型各有特点,即使它们都继承自System.Object,并且有装箱和拆箱等操作确保两种类型可以方便地交...

2023-01-01

C#创建及访问网络硬盘的实现

在某些场景下我们需要远程访问共享硬盘空间,从而实现方便快捷的访问远程文件。比如公司局域网内有一台电脑存放了大量的文件,其它电脑想要访问该电脑的文件,就可以通过网络硬盘...

2023-01-01

Unity游戏开发之炸弹人游戏的实现

目录前言制作思路开始制作第一步:游戏场景制作第二步:墙体代码第三步:炸弹人制作第四步:炸弹处理第五步:敌人制作第六步:游戏控制器第七步:UI控制器前言大家小时候肯定玩过这款游戏...

2023-01-01

Unity为软件添加使用有效期的具体步骤

功能需求:为软件设定一个使用有效期,当超过指定时间后,程序无法运行。实现思路:定义一个常量,用于记录一个时间,我们称之为标记时间,使用当前时间减去标记时间,如果时间间隔大于设定...

2023-01-01

C#多线程之线程同步WaitHandle

一、引言在前面的文章中,我们是使用“锁”的方式实现了线程间的通信,这种通信方式比较笨重。除了锁之外,.NET中还提供了一些线程间更自由通讯的工具,他们提供了通过&l...

2023-01-01

C#多线程的相关操作讲解

一、线程异常我们在单线程中,捕获异常可以使用try-catch,代码如下所示:using System;namespace MultithreadingOption{ class Program { static void Main(string...

2023-01-01

如何使用正则表达式判断邮箱(以C#为例)

目录首先引入正则需要使用的命名空间判断是否为QQ邮箱判断是否为邮箱补充:C#正则表达式(Regex类)总结日常开发中,判断邮箱是少不了的,这个我以**C#**为例,来写一个判断方法,正则表...

2023-01-01

基于C#设计一个双色球选号工具

目录窗体展示开始后展示结束摇色展示代码导入的命名空间初始化私有变量页面初始化开始按钮数字更新结束按钮结果显示窗体展示开始后展示结束摇色展示代码导入的命名空间usin...

2023-01-01

C#中使用HttpPost调用WebService的方法

WebService服务端代码public class WebServiceDemo : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { r...

2023-01-01

C#调用WebService的方法介绍

一、前言在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。首先我们创建一个WebService,里面...

2023-01-01

c#中LINQ的基本用法(二)

目录1.筛选2.用索引筛选3.类型筛选4.复合的from子句5.排序6.分组7.对嵌套的对象分组8.内连接9.左连接10.组连接11.集合操作12.合并13.分区14.聚合操作符15.转换操作符16.生...

2023-01-01

C#集合之可观察集合的用法

如果需要集合中的元素何时删除或添加的信息,可以使用ObservableCollection<T>类。这个类是为WPF定义的,这样UI就可以得知集合的变化。这个类在程序集WindowsBase中定义,需要引...

2023-01-01

C#异步编程的三种模式

使用异步编程,方法调用是在后台运行(通常在线程和任务的帮助下),并且不会阻塞调用线程。
异步编程有三种模式:异步模式,基于事件的异步模式和基于任务的异步模式(TAP)。一.异步模式...

2023-01-01

C#中的委托详解

如果要给方法传递一个方法参数时,就可以使用委托。要传递方法,就必须把方法的细节封装在一钟新类型的对象中,即委托。委托是一种特殊类型的对象,其特殊之处在于,我们以前定义的所...

2023-01-01

C#调用百度地图API根据地名获取经纬度geocoding

目录前言步骤 一、到百度地图开放平台注册认证,并创建应用,获取ak二、查看api文档三、创建GeocodingMap类,根据地名获取经纬度参考前言公司的一个内部网站维护,需要根据地名填写...

2023-01-01

利用Unity制作特写镜头的示例代码

目录类似这种效果1.首先制作上下两层黑边2.摄像头聚焦的效果类似这种效果黑边的大小可以自行调整这里为了方便直接用两个Button绑定了方法,有需要自行调用方法1.首先制作上下...

2023-01-01

C#之继承实现

目录一.继承的类型1.实现继承和接口继承2.多重继承3.结构的继承二.继承的实现1.虚方法2.隐藏方法3.调用函数的基类版本4.抽象类和抽象函数5.密封类和密封方法6.派生类的构造...

2023-01-01

C#实现基于任务的异步编程模式

目录一.延续任务二.同步上下文三.使用多个异步方法1.按顺序调用异步方法2.使用组合器四.转换异步模式五.错误处理1.异步方法的异常处理2.多个异步方法的异常处理3.使用Aggre...

2023-01-01

C#集合之栈的用法

栈(Stack)和队列是非常类似的一个容器,只是栈是一个后进先出(LIFO)的容器。
栈用Push()方法在栈中添加元素,用Pop()方法获取最近添加的一个元素:Stack<T>与Queue<T>类(https://ww...

2023-01-01

C#把DataTable导出为Excel文件

实现DataTable转为Excel文件,和上次分享的Excel文件转为DataTable互为反操作。DataTable转化为Excel文件是通过传入一个DataTable类型的参数,然后将传入的DataTable转化为Exce...

2023-01-01

C#自定义特性(Attribute)详解

在前面介绍的代码中有使用特性,这些特性都是Microsoft定义好的,作为.NET Framework类库的一部分,许多特性都得到了C#编译器的支持。
.NET Frmework也允许定义自己的特性。自定...

2023-01-01

C#泛型接口的协变和逆变

1、什么是协变、逆变?假设:TSub是TParent的子类。
协变:如果一个泛型接口IFoo<T>,IFoo<TSub>可以转换为IFoo<TParent>的话,我们称这个过程为协变,IFoo支持对参数T的协变。
逆变:如...

2023-01-01

C#集合之列表的用法

目录1.创建列表2.添加元素3.插入元素4.访问元素5.删除元素6.搜索7.排序8.类型转换9.只读集合.NET Framework为动态列表List提供泛型类List<T>。这个类实现了IList,ICollectio...

2023-01-01

C#在复杂多线程环境下使用读写锁同步写入文件

代码一:class Program { static int LogCount = 1000; static int SumLogCount = 0; static int WritedCount = 0; static int FailedCount...

2023-01-01

C#实现将RTF转为HTML的示例代码

目录一、引入类库工具二、RTF转HTMLC#vb.net三、转换效果RTF文档即富文本格式(Rich Text Format)的文档。我们在处理文件时,遇到需要对文档格式进行转换时,可以将RTF转为其他格...

2023-01-01

Unity接入高德开放API实现IP定位

目录一、接口介绍二、申请密钥Key三、在Unity中应用1.定位数据结构2.函数封装3.测试一、接口介绍Http接口,根据输入的IP地址,快速定位IP所在位置,仅支持IPV4,不支持国外IP解析。...

2023-01-01

基于C#实现图片滑动验证码的示例代码

目录图片准备合成目标实现1.创建项目2.Nuget添加ImageSharp3.vscode打开4.引入图片5.生成out_bg.jpg6.生成out_slider.png全部代码最后图片准备hole.png和slider.png为png是...

2023-01-01

C#实现优先队列和堆排序

目录优先队列1.API2.初级实现3.堆的定义二叉堆表示法4.堆的算法上浮(由下至上的堆的有序化)下沉(由上至下的堆的有序化)改进堆排序1.堆的构造2.下沉排序先下沉后上浮优先队列许...

2023-01-01

C# 重写Notification提示窗口的示例代码

这个窗口是右下角提示小窗口,主要用于提示。private void btnStartNotification_Click(object sender, EventArgs e){ Bz.Controls.BzNotification notification = new Bz....

2023-01-01

C#多线程之Parallel类的用法

Parallel类是对线程的一个抽象。该类位于System.Threading.Tasks名称空间中,提供了数据和任务并行性。Paraller类定义了数据并行地For和ForEach的静态方法,以及任务并行的Invo...

2023-01-01

c#中判断类是否继承于泛型基类

在c#中,有时候我们会编写类似这样的代码:public class a<T> { //具体类的实现}public class b : a<string>{}如果b继承a的类型不确定,这个时候我们是无法通过baseType来直接判...

2023-01-01

C#实现常见时间格式

有时候我们要对时间进行格式化,达到不同的显示效果,本文为大家整理了C#中一些常见时间格式的实现方法。string aa = DateTime.Now.ToShortDateString();//"2019/9/23"string b...

2023-01-01

C#数据类型实现背包、队列和栈

目录基础编程模型和数据抽象1. API1. 背包2.先进先出队列3. 下压栈2.用数组实现3.链表1.构造链表2.在表头插入结点3.从表头删除结点4.在表尾插入结点5.其他位置的插入和删除...

2023-01-01

C#实现希尔排序

对于大规模乱序的数组,插入排序很慢,因为它只会交换相邻的元素,因此元素只能一点一点地从数组地一段移动到另一端。希尔排序改进了插入排序,交换不相邻地元素以对数组地局部进行...

2023-01-01

C#使用读写锁解决多线程并发问题

一、简介在开发程序的过程中,难免少不了写入错误日志这个关键功能。实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写个简单的方法把错误信息记录到...

2023-01-01

C#多线程之任务的用法详解

目录一.启动任务1.使用线程池的任务2.同步任务3.使用单独线程的任务二.任务的结果————Future三.连续的任务四.任务的层次结构Parallel类(https://w...

2023-01-01

datagridview实现手动添加行数据

目录datagridview手动添加行数据datagridview添加行的几种方式datagridview手动添加行数据我在做软件模型界面时,通过功能按钮触发显示的datagridview中,为了方便,需要一些数据...

2023-01-01

C#如何在窗体程序中操作数据库数据

目录一、界面布局二、定义数据库操作的公共类三、在界面中操作数据库方法一、界面布局界面中有一个dataGridview、两个Button、两个Label和两个TextBox。二、定义数据库操作...

2023-01-01

C#多线程死锁介绍与案例代码

一、死锁简介在多道程序设计环境下,多个进程可能竞争一定数量的资源,。一个进程申请资源,如果资源不可用,那么进程进入等待状态。如果所申请的资源被其他等待进程占有,那么该等待...

2023-01-01

C#写入XML文档

一、案例一 //XML文件写方法 //编写XML文件的格式并存储到指定的FilePath(路径) internal void WriterXML(string FilePath) { try...

2023-01-01

C#使用LOCK实现线程同步

一、简介线程安全概念:线程安全是指在当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线...

2023-01-01

C#使用Monitor类实现线程同步

一、简介Lock关键字是Monitor的一种替换用法,lock在IL代码中会被翻译成Monitor. lock (obj) { //代码段 } //就等同于 Monitor.Enter(obj); //代...

2023-01-01

C#多线程中的互斥锁Mutex

一、简介Mutex的突出特点是可以跨应用程序域边界对资源进行独占访问,即可以用于同步不同进程中的线程,这种功能当然这是以牺牲更多的系统资源为代价的。主要常用的两个方法:pu...

2023-01-01

C#构造函数详解

一、简介构造函数,基本用法是在类对象声明的时候完成初始化工作。二、实例构造函数1、构造函数的名字与类名相同。2、使用 new 表达式创建类的对象或者结构(例如int)时,会调用其...

2023-01-01

C#关键字之覆写overwrite介绍

一、简介overwrite覆写,用new实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。二、代码namespace 重寫{ class Parent...

2023-01-01

C#读写Config配置文件案例

一、简介应用程序配置文件(App.config)是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。*.e...

2023-01-01

Parallel.For循环与普通for循环的性能比较

一、Parallel.For循环优于For的情况代码: #region Parallel.For public static void ParallelForTest() { //标准For var dt =...

2023-01-01

C#关键字之重载Overload介绍

一、简介overload重载,在同一个类中方法名相同、参数或返回值不同的多个方法即为方法重载。
注意事项:
1.出现在同一个类中。
2.参数列表不同或返回类型和参数列表都不同,只有...

2023-01-01

C#多线程的ResetAbort()方法

一、简介Abort方法可以通过跑出ThreadAbortException异常中止线程,而使用ResetAbort方法可以取消中止线程的操作,下面通过代码演示使用 ResetAbort方法。二、代码class Progra...

2023-01-01
返回顶部
顶部