C#条件编译、内联函数、CLS介绍

1、条件编译#if 条件编译会隐藏非条件(#else if)代码,我们开发中很可能会忽略掉这部分代码,当我们切换条件常量到这部分代码时,很可能因为各种原因导致报错。如果使用特性进行...

2022-08-06

基于C#制作考试答题系统

目录效果展示:起始页代码考试页面代码有图标的应用程序效果展示:1. 进入页面:2. 答题界面:3. 时间截止界面:4. 提交界面:起始页代码public partial class Start : Form {...

2022-08-06

C#生成带注释的dll并引用实现

目录一. 编写.cs文件二. 生成XML文件注释三. 打开MSBuild Command Prompt for VS2015生成dll文件四. 使用另一个项目引用.dll文件五. 运行成功:一. 编写.cs文件注:要想编译dll...

2022-08-06

C#集合之有序列表的用法

如果需要基于键对所需集合排序,就可以使用SortedList<TKey,TValue>类。这个类按照键给元素排序。这个集合中的值和键都可以使用任何类型。定义为键的自定义类型需要实现IComp...

2022-08-06

C#集合之字典的用法

字典表示一种复杂的数据结构,这种数据结构允许按照某个键来访问元素。字典也称为映射或散列表。
字典的主要特性是能根据键快速查找值。也可以自由添加和删除元素,这有点像Lis...

2022-08-06

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

LINQ(Language Integrated Query,语言集成查询),在C#语言中集成了查询语法,可以用相同的语法访问不同的数据源。
LINQ提供了不同数据源的抽象层,所以可以使用相同的语法。
这里...

2022-08-06

C#多线程之取消架构介绍

.NET 4.5 中包含取消架构,允许以标准方式取消长时间运行的任务。每个阻塞调用都应支持这种机制。但目前,并不是所有阻塞调用都实现了这个新技术。已经实现了这种机制的技术有...

2022-08-06

C#委托与冒泡排序实例

C#实现委托namespace Delegate{ delegate void DGSayiHi(string name);//声明委托 delegate void DGDo(string name); class Program { static void Mai...

2022-08-06

C#使用正则表达式

一.正则基础1. []方括号表示匹配可以匹配方括号中的任意点单个字符,方括号只允许匹配单个字符。
2. | 或表示两项之间的一个选择,它不能和方括号使用,只能和小括号使用。
3. ()...

2022-08-06

C#类和结构详解

目录一.类1.数据成员2.函数成员(1)方法(2)属性(property)(3)构造函数3.只读字段二.匿名类型三.结构(struct)四.类和结构的区别1.结构是值类型2.结构和继承3.结构的构造函数五....

2022-08-06

C#中的数组用法详解

目录一.简单数组(一维数组)1.数组的声明2.数组的初始化3.访问数组元素4.数组中使用引用类型二.多维数组三.锯齿数组四.Array类1.创建数组2.复制数组3.排序五.数组作为参数1.数...

2022-08-06

c#之事件用法

事件基于委托,可以为任何一种委托类型提供一种发布\订阅机制。
使用event关键字将一个委托类型定义为事件。
下面通过一个例子介绍事件://事件发布类 public class Pub...

2022-08-06

C#集合之队列的用法

队列是其元素按照先进先出(FIFO)的方式来处理的集合。
队列使用System.Collections.Generic名称空间中的泛型类Queue<T>实现。在内部,Queue<T>类使用T类型的数组,这类似List<T>(h...

2022-08-06

C#集合之不变集合的用法

如果对象可以改变其状态,就很难在多个同时运行的任务中使用。这些集合必须同步。如果对象不能改变器状态,就很容易在多个线程中使用。
Microsoft提供了一个新的集合库:Microsof...

2022-08-06

C#集合之位数组的用法

如果需要处理的数字有许多位,就可以使用BitArray类和BitVector32结构。BitArray类位于System.Collection,BitVector32结构位于System.Collection.Specialized。
这两种类型最...

2022-08-06

C#实现密码验证与输错密码账户锁定

C#实现的Check Password,并根据输错密码的次数分情况锁定账户:如果输入错误3次,登录账户锁定5分钟并提示X点X分后重试登录。如果5分钟后再次输入,累计输入错误密码累计达到5次。...

2022-08-06

Task提高异步执行效率技巧

async Task 语法糖出来后,异步编程变得非常简单,适合需要耗费较长时间的任务。有些小伙伴使用后可能会非常疑惑,使用异步和同步,在耗时上几乎没有差别。下面我们看一个例子,场景...

2022-08-06

C#之泛型详解

目录一.泛型的特性1.性能2.类型安全3.二进制代码的重用4.代码的扩展5.命名约定二.使用类型1.先创建一个非泛型的简化链表类。2.下面编写一个泛型版本三.泛型类的功能1.默认...

2022-08-06

基于Unity实现2D边缘检测

目录一、ShaderLab1.Alpha值边缘检测2.卷积边缘检测二、ShaderGraph一、ShaderLab1.Alpha值边缘检测根据图片的Alpha值边缘判定,向内扩一段距离做边缘,颜色设置未描边颜色;片元...

2022-08-06

Unity 使用tiledmap解析地图的详细过程

1、先使用tiledmap编辑地图,图层用来刷图块,对象用来定义单个格子的数据2、为每个图块调属性 3、图块需要单独配置属性的就必须创建对象,并设置值右键设置属性 4、导出json文件...

2022-08-06

C#集合之集(set)的用法

包含不重复元素的集合称为“集(set)”。.NET Framework包含两个集HashSet<T>和SortedSet<T>,它们都实现ISet<T>接口。HashSet<T>集包含不重复元素的无序列表,SortedSe...

2022-08-06

C#集合之并发集合的用法

.NET 4 开始,在System.Collection.Concurrent中提供了几个线程安全的集合类。线程安全的集合可防止多个线程以相互冲突的方式访问集合。
为了对集合进行线程安全的访问,定义了...

2022-08-06

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

一.并行LINQSystem.Linq名称空间中包含的类ParallelEnumerable可以分解查询的工作,使其分布在多个线程上。
尽管Enumerable类给IEnumerable<T>接口定义了扩展方法,但ParallelE...

2022-08-06

C#集合之链表的用法

LinkedList<T>是一个双向链表,其元素会指向它前面和后面的元素。这样,通过移动到下一个元素可以正向遍历链表,通过移动到前一个元素可以反向遍历链表。
链表在存储元素时,不仅要...

2022-08-06

c#多线程之线程基础

目录一、简介二、创建线程三、暂停线程四、线程等待五、终止线程六、检测线程状态七、线程优先级八、前台线程和后台线程九、向线程传递参数十、使用C# Lock 关键字十一、使...

2022-08-06

C#窗体通讯录系统的示例代码

目录1.首先创建DBhelp类用来连接数据库2.创建主页面:3.添加联系人页面4.修改页面5.查询页面本文主要介绍了C#窗体通讯录系统的示例代码,分享给大家,具体如下:1.首先创建DBhelp类...

2022-08-06

C#通过cmd调用7z软件实现压缩和解压文件

压缩文件:public object CompressZipFile(string sourceFile, string destinationFile) { object resObj; Process process = new Process();...

2022-08-06

C#实现冒泡排序和插入排序算法

1.选择排序(冒泡排序)升序用第一个元素跟其他元素比较,如果该元素比其他元素,则交换,保证该元素是最小的。然后再用第二个元素跟后面其他的比较,保证第二个元素是除第一个最小的。...

2022-08-06

C# 使用PrintDocument类打印标签的方法

最近做了一个项目,使用不干胶标签贴在RFID抗金属标签上,那么就会出现标签打印的问题,该如何打印呢?后来经过网上冲浪发现,其实打印标签和打印A4纸的方法一样,只不过就是布局、设置...

2022-08-06

C#中Abstract方法和Virtual方法的区别

简介:c#中Abstract和Virtual比较容易混淆,都与继承有关,并且涉及override的使用。virtual可以被子类重写,而abstract必须被子类重写。virtual修饰的方法必须有实现(哪怕是仅仅添...

2022-08-06

C#中IEnumerable接口介绍并实现自定义集合

简介IEnumerable接口是非常的简单,只包含一个抽象的方法GetEnumerator(),它返回一个可用于循环访问集合的IEnumerator对象。对于所有数组的遍历,都来自IEnumerable接口。
IEnum...

2022-08-06

C#构造函数在基类和父类中的执行顺序

一、简介当我们没有在子类构造函数中写上 base(),默认会先调用父类中无参的构造函数,再调用子类。
当在有参构造函数后写上base时,只调用子类构造函数中有参的构造函数,隐藏父类...

2022-08-06

C#调用QQ_Mail发送邮件实例代码两例

代码案例一:private void button1_Click(object sender, EventArgs e) { string myMaillAdress = ""; string myMaillPassword = "";...

2022-08-06

C#算法设计与分析详解

目录1. 什么是科学方法??1.观察2.将问题规模和运行时间的关系量化2.数学模型近似近似运行时间成本模型总结3. 增长数量级的分类4. 倍率实验5.注意事项6. 处理对于输入的依赖7....

2022-08-06

C#实现归并排序

什么是归并?即将两个有序的数组归并成一个更大的有序数组。什么是归并排序?先将要排序的数组递归地分成两半分别排序,然后将结果归并起来。归并排序能够保证将任意大小为 N 的...

2022-08-06

C#深拷贝方法探究及性能比较(多种深拷贝)

目录1、手写创建对象2、反射3、Json字符串序列化4、对象二进制序列化5、AutoMapper6、表达式树之前学习了设计模式原型模式,在原型模式中就提到了对象的深拷贝。深拷贝指的是...

2022-08-06

C#关键字in、out、ref的作用与区别

简介:In:过程不会改写In的内容 ,默认的传递方式,即向函数内部传送值。
Out和out:传入的值不会被过程所读取,Out在传入的时候,参数的数值会清空,但过程可以写 。只出不进
ref:可以...

2022-08-06

C#并查集(union-find)算法详解

目录算法的主题思想:1. 动态连通性2. 定义问题3. quick-find算法实现算法分析4. quick-union算法实现森林表示算法分析5.加权 quick-union 算法实现算法分析6.最优算法 - 路...

2022-08-06

C#使用符号表实现查找算法

高效检索海量信息(经典查找算法)是现代信息世界的基础设施。我们使用符号表描述一张抽象的表格,将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取...

2022-08-06

C#中执行SQL的几种方法讲解

1.不同的数据库private InfoLightDBTools dbTools; //#ORACLE#this.dbTools = new InfoLightDBTools(clientInfo, dbName);private InfoLightDBTXTools dbTXTools; /...

2022-08-06

C#中Parallel类For、ForEach和Invoke使用介绍

一、简介:Parallel类提供了数据和任务的并行性;
Paraller.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Paraller.For()方法,可以并行运行迭代,迭代的顺序没有定义...

2022-08-06

C#关键字之重写override介绍

一、简介override意思是重写。它是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同,用于拓展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现...

2022-08-06

C#实现多线程编程的简单案例

目录一、使用线程的理由二、基本知识三、线程的使用四、线程池五、Task类六、委托异步执行一、使用线程的理由1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。...

2022-08-06

C#实现加密的几种方法介绍

1.ACSII码加密//ACSII码加密 private static string ACSIIPWd(string rpwd) { string Ret; byte[] array = System.Text.Encoding.ASC...

2022-08-06

C#实现快速排序算法

快速排序是应用最广泛的排序算法,流行的原因是它实现简单,适用于各种不同情况的输入数据且在一般情况下比其他排序都快得多。快速排序是原地排序(只需要一个很小的辅助栈),将长度...

2022-08-06

原生实现C#与Lua相互调用方法(Unity3D可用)

目录引言一、编译Lua动态链接库1. 编译Windows下使用的DLL文件2. 编译Android下使用的SO文件二、编写C#使用的API1. 动态链接库在Unity中的存放位置。2. 编写C#的API[LuaDll...

2022-08-06

C#多线程之线程池(ThreadPool)

一、简介前面介绍了平时用到的大多数的多线程的例子,但在实际开发中使用的线程往往是大量的和更为复杂的,这时,每次都创建线程、启动线程。从性能上来讲,这样做并不理想(因为每使...

2022-08-06

C#使用GUID(全局统一标识符)

一、简介1.什么是GUID?全局唯一标识符(GUID,Globally Unique Identifier),GUID也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为128位的数字标...

2022-08-06

C#多线程之线程中止Abort()方法

一、简介Abort()方法用来终止线程,调用此方法强制停止正在执行的线程,它会抛出一个ThreadAbortException异常从而导致目标线程的终止。二、代码 class Program {...

2022-08-06

C#如何绑定多个按钮到同一个事件

目录绑定多个按钮到同一个事件1.添加代码2.选择你要添加代码的控件 多个控件有同一个事件,优化先自己声明方法,再用事件调用绑定多个按钮到同一个事件1.添加代码private voi...

2022-08-06
返回顶部
顶部