
C#基础
文章平均质量分 67
C#相关的基础知识内容
牛奶咖啡13
【目前在找工作,期望工作地为昆明,有意向的企业可私信我,内推更好】
你不知道你不知道[你永远不会去学习你不知道其存在的东西]
别人的故事在好,那也是别人的;人活成什么样子,得自己定!
展开
-
C#中值类型与引用类型是直观使用示例
正确理解值类型与引用类型,可以更好的帮助软件开发人员写出性能更好且正确稳定运行的程序原创 2025-03-24 14:15:26 · 758 阅读 · 0 评论 -
C#中修饰符——abstract、virtual
C#中的多态、抽象方法、虚方法区别联系原创 2025-03-19 23:39:59 · 911 阅读 · 0 评论 -
C#的字符串之String类与StringBuilder类区别于适用场景
C#中的字符串类String与StringBuilder有什么区别?对应的适用场景是什么?原创 2025-03-16 19:27:57 · 1051 阅读 · 0 评论 -
解决【无法处理文件xxx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记】问题
当我们从github或者其他地方获取到项目源码工程后,对该工程进行解压使用VisualStudio打开后进行编译或运行时报错【无法处理文件XXX,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记。原创 2023-10-18 22:43:08 · 6382 阅读 · 0 评论 -
C#对字典容器Dictionary<TKey, TValue>内容进行XML序列化或反序列化报错解决方法
在使用C#对字典容器Dictionary内容进行XML序列化报错。原创 2023-10-09 23:50:53 · 2608 阅读 · 1 评论 -
Windows中实现将bat或exe文件作为服务_且实现命令行安装、配置、启动、删除服务
在Windows环境下进行日常的项目开发过程中,有时候需要将bat文件或exe文件程序注册为Windows的服务实现开机自己运行(没有用户登陆,服务在开机后也可以照常运行)、且对于那些没有用户交互界面的exe程序来说只要在后台运行即可,无需在桌面显示该exe程序窗口内容、无需用户手动打开,还可以防止用户不小心关闭该程序。原创 2023-09-29 18:41:16 · 10526 阅读 · 4 评论 -
Cron表达式_用于定时调度任务
Cron表达式是一个用于设置计划任务的字符串,该字符串以5或6个空格分隔,分为6或7个域,每一个域代表任务在相应时间、日期或时间间隔执行的规则【Cron表达式最初是在类Unix操作中系统中使用的,但现在已经广泛应用于各种操作系统和编程语言中】。Cron表达式常用于定时调度任务中(可通过Cron表达式来指定任务在某个时间点或进行周期性执行任务);Quartz.NET开源库实现作业定时调度——常用示例_quartz.net 完整示例。原创 2023-09-25 22:41:07 · 692 阅读 · 0 评论 -
C#中实现单元测试的示例流程_MSTest测试项目
在《单元测试艺术》一书中对于单元测试的定义是:【一个单元测试是一段代码,这段代码调用一个工作单元(指:调用软件中的一个方法,这个方法执行过程中所发生的所有行为以及最后产生的结果的总和),并检验该工作单元的一个具体的结果。如果关于这个结果的最终假设是错误的,单元测试就失败了;一个单元测试的范围可以小到一个方法,大到多个类】原创 2023-09-24 20:16:53 · 3454 阅读 · 0 评论 -
下载.NET的反编译调试工具dnSpy和简易使用
dnSpy 是一个.NET 程序集的反编译编辑器【即:没有可用的源代码,也可以使用它来编辑和调试现有的程序集】;调试.NET 和Unity的程序集①不需要源代码即可设置断点并单步执行任何程序集;②变量窗口支持将变量(如解密的字节数组)保存到磁盘或在十六进制编辑器(内存窗口)中查看它们;③可以调试动态模块(但由于 CLR 的限制,不能调试动态方法);④输出”窗口记录各种调试事件,默认情况下显示时间戳:)⑤可以调试在运行时自行解密的程序集,dnSpy 将使用内存映像。原创 2023-07-15 22:56:26 · 3333 阅读 · 0 评论 -
C#实现将小数值四舍五入为整数
将小数内容转为整数【但是转为小数又分为几种情况】:①将小数取为下一个整数;②将小数只取整数;③标准的四舍五入取整;原创 2023-07-12 11:42:01 · 3273 阅读 · 0 评论 -
C#的分部类(partial)和方法
一、实现的效果 C#的分部关键字(partial)能够拆分一个类、一个结构、一个接口或一个方法为两个或更多个的文件,分部的每个文件都可以包含自己的类型和方法,程序编译时会将同类的分部内容合并为一个。这是关于《分部类(partial)和方法》的示例程序工程https://download.youkuaiyun.com/download/xiaochenXIHUA/85236324二、分部类2.0、类的修饰符类修饰符说明 序号 类修饰符 类修饰符说明 1 new ..原创 2022-04-28 14:56:43 · 5289 阅读 · 0 评论 -
C#实现对Dictionary内容的通用操作
一、实现效果原创 2022-03-30 20:47:26 · 614 阅读 · 0 评论 -
计算机的基础知识---位(bit)、字节(byte)、编码(Encoding)和大小端
一、基础知识简介1.1、位(bit)位(bit):是计算机的最小数据存储单位(即:由二进制数字0和1表示)可用小写的b表示; 现代计算机存储和处理的信息以二值信号表示。这些微不足道的二进制数字,或者称为位 (bit);二值信号能够很容易地被表示、存储和传输。例如:可以表示为穿孔卡片上有洞或无洞、导线上的高电压或低电压,或者顺时针或逆时针的磁场。对二值信号进行存储和执行计算的电子电路非常简单和可靠。1.2、字节字节(Byte):是计算机用于计量存储容量的最小单位(一种计量单位)..原创 2022-03-20 22:44:37 · 3170 阅读 · 0 评论 -
C#中的动态类型(Dynamic)
一、动态类型简介 .NET 4 中引入了动态类型。动态对象(dynamic)使您可以处理诸如 JSON 文档之类的结构内容,这些结构的组成可能要到运行时才能知道【该类型是一种静态类型,但类型为dynamic的对象会跳过静态类型检查。 大多数情况下,该对象就像具有类型object一样。 在编译时,将假定类型化为dynamic的元素支持任何操作。 因此,不必考虑对象是从 COM API、从动态语言(例如 IronPython)、从 HTML 文档对象模型 (DOM)、从反射还是从程序中...原创 2022-02-25 17:18:00 · 17031 阅读 · 0 评论 -
C#的反射
一、反射介绍 反射:指程序可以访问、检测和修改它本身状态或行为的一种能力(即:审查元数据并收集关于它的类型信息的能力)①元数据(编译以后的最基本数据单元)可以理解为一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。②反射则提供了封装程序集、模块和类型的对象(程序集包含模块,而模块包含类型,类型又包含成员【成员--->类型--->模块--->程序集】)。③可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象..原创 2022-02-22 11:55:10 · 11960 阅读 · 6 评论 -
C#中的is与as运算符和typeof运算符
一、is与as运算符is 运算符检查一个对象是否兼容于其他指定的类型,并返回一个Bool值:①如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。永远不会抛出异常。②如果对象引用为null,那么is操作符总是返回为false,因为没有对象可以检查其类型。as运算符将表达式结果显式转换为给定的引用或可以为 null 值的类型。 如果无法进行转换,则as运算符返回null。 与强制转换表达式不同,运算符永远不会引发异常。注意: C#是一门...转载 2022-02-18 11:00:50 · 1593 阅读 · 0 评论 -
三元运算符(条件运算符)
一、三元运算符 条件运算符 (?:) 也称为三元条件运算符,用于计算布尔表达式,并根据布尔表达式的计算结果为true还是false来返回(使用三元运算符可以简化If...else)。二、三元运算符语法 判断条件?:结果1,结果2三、示例 比如判断结果0是男生,否则是女生:①使用if...else编写string result=null;if(sexValue==0){ result="男";}else{ result="女";...原创 2021-11-08 17:26:56 · 8836 阅读 · 0 评论 -
安装使用反编译工具ILSPY
一、ILSPY简介1.1、ILSPY介绍 ILSPY是一款开源、免费的、且适用于.NET平台反编译【C#语言编写的程序和库(.dll)内容】工具;可以集成在Visual Studio 开发工具中,能够十分快捷方便的查看源代码内容。1.2、ILSPY使用方法 在项目中选中需要查看的方法,然后右键选择【用ILSPy打开代码】即可查看源代码内容。二、给Visual Studio 2019安装ILSpy工具2.1、下载安装到Visual Studio 2019上的ILSpy...原创 2021-10-26 11:15:47 · 66378 阅读 · 3 评论 -
托管代码和非托管代码
一、什么是“托管代码”?1.1、托管代码 托管代码是使用可在 .NET 上运行的一种高级语言(例如 C#、Visual Basic、F# 等)编写的。 使用相应的编译器编译以这些语言编写的代码时,无法获得机器代码, 而是获得中间语言代码,然后运行时会对其进行编译并将其执行。 C++ 是这条规则的一个例外,因为它也能够生成可在 Windows 上运行的本机非托管二进制代码。 简而言之,托管代码就是执行过程交由运行时管理的代码;在这种情况下,相关的运行时称为公共语言运行时 (CLR)...转载 2021-10-15 16:29:26 · 1227 阅读 · 0 评论 -
DevExpress中实现对DataTable的操作、转换
一、实现效果二、实现核心/**** Title:"Winfrom" 项目* 主题:DataTable帮助类* Description:* 功能:* 1、将DataTable转为实体* 2、将实体转为DataTable* 3、将两个不同列的DataTable合并成一个新的DataTable* 4、DataTable表的操作* ①复制DataTable* ②给DataTable表添加字段* .原创 2021-09-08 01:06:10 · 1197 阅读 · 0 评论 -
计算两个时间的差值
一、实现效果说明:开始时间为:【2021-08-15 10:26:21】;结束时间为:【2021-08-17 21:31:58】1.1、计算相差的天数1.2、计算相差的小时数1.3、计算相差的分钟数1.4、计算相差的秒数二、实现核心/**** Title:"基础工具" 项目* 主题:DateTime帮助类* Description:* 功能:* 1、获取相差的天* 2、获取相差的小时* ...原创 2021-08-17 23:05:30 · 496 阅读 · 0 评论 -
C#压缩帮助类(SharpZipLib)
一、SharpZipLib官网NuGet Gallery | SharpZipLib 1.3.2二、压缩帮助类/**** Title:"基础工具" 项目* Title:"基础工具" 项目* 主题:压缩包帮助类* Description:* 功能:* 1、压缩单个文件* 2、压缩多个文件* 3、压缩多层目录* 4、递归遍历目录* 5、解压缩一个 zip 文件* 6、获取压缩文件中指定类型的文件* .转载 2021-07-20 11:28:07 · 3130 阅读 · 0 评论 -
C#实现XML文件的序列化和反序列化
一、C#实现XML文件的序列化和反序列化核心/**** Title:"基础工具" 项目* 主题:XML帮助类* Description:* 功能:* 1、将对象序列化为xml文件且保存* 2、将对象序列化为xml字符串* 3、将xml文件反序列化为对象* 4、将xml字符串反序列化为对象* Date:2021* Version:0.1版本* Author:Coffee* Modify Recoder:*/using System原创 2021-07-16 23:18:09 · 2867 阅读 · 0 评论 -
C#实现对HTTP协议文件下载
一、C#实现对HTTP协议文件下载核心/**** Title:"基础工具" 项目* 主题:文件下载* Description:* 功能:* 1、HTTP方式下载文件(可获取文件的下载进度、下载结束、下载错误)* Date:2021* Version:0.1版本* Author:Coffee* Modify Recoder:*/using System;using System.IO;using System.Net;namespace Utils{原创 2021-07-16 22:35:35 · 1900 阅读 · 0 评论 -
C#实现将文件、文件夹压缩为压缩包
一、C#实现将文件、文件夹压缩为压缩包核心/**** Title:"基础工具" 项目* 主题:压缩包帮助类* Description:* 功能:【该压缩方法来自:https://www.cnblogs.com/Chary/p/No0000DF.html】* 1、创建 zip 存档,该文档包含指定目录的文件和子目录(单个目录)* 2、创建 zip 存档,该存档包含指定目录的文件和目录(多个目录)* 3、递归删除磁盘上的指定文件夹目录及文件* 4转载 2021-07-16 22:10:35 · 9501 阅读 · 11 评论 -
C#实现文件的检查、复制、删除和获取MD5值
一、实现文件的检查、复制、删除和获取MD5值/**** Title:"基础工具" 项目* 主题:文件帮助类* Description:* 功能:* 1、检查文件是否存在* 2、复制文件* 3、删除文件* 4、获取文件的MD5值* Date:2021* Version:0.1版本* Author:Coffee* Modify Recoder:*/using System;using System.Collections.Gene原创 2021-07-16 21:47:16 · 403 阅读 · 0 评论 -
C#实现选择、创建、删除、复制目录
一、实现选择、创建、删除、复制目录的核心/**** Title:"基础工具" 项目* 主题:目录帮助类* Description:* 功能:* 1、获取选择的目录* 2、创建目录* 3、删除目录* 4、复制目录中的所有内容到指定目录* 5、获取当前目录下的所有文件(不含子目录下的文件)* 6、获取当前目录下的所有文件(含子目录下的文件)* 7、获取到上级目录* Date:2021* Version:0.原创 2021-07-16 21:30:22 · 616 阅读 · 1 评论 -
C#多线程和异步
C#多线程和异步的示例项目工程下载一、什么是异步 同步和异步主要用于修饰方法。①同步:当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;②异步:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方法执行完毕,我们称这个方法为异步方法。 异步的好处在于非阻塞(调用线程不会暂停执行去等待子线程完成),因此我们把一些不需要立即使用结果、较耗时的任务设为异步执行,可以提高程序的运行效率。net4.0在ThreadPoo转载 2021-07-12 22:02:51 · 2156 阅读 · 0 评论 -
Quartz.NET开源库实现作业定时调度——常用示例
一、Quarzt.NET的官方地址Quartz.NET开源库实现作业定时调度——简单示例_xiaochenXIHUA的博客-优快云博客官网:Quartz.NET (quartz-scheduler.net)完整示例:Quartz.NET Quick Start Guide | Quartz.NET (quartz-scheduler.net)构建简单触发器的手册:SimpleTrigger | Quartz.NET (quartz-scheduler.net)构建日历触发器的手册:原创 2021-07-04 14:58:14 · 750 阅读 · 2 评论 -
Quartz.NET开源库实现作业定时调度——简单示例
一、Quartz.NET简介1.1、.NET Framework自带的Timer定时器介绍 很多的软件项目中都会使用到定时任务、定时轮询数据库同步,定时邮件通知等功能。.NET Framework具有“内置”定时器功能,通过System.Timers.Timer类实现。自带定时器的缺点:①在使用Timer类需要面对的问题:计时器没有持久化机制;②计时器具有不灵活的计划(仅能设置开始时间和重复间隔,没有基于日期,时间等);③计时器不使用线程池(每个定时器一个线程);计时器没有真正..原创 2021-06-29 20:52:56 · 1057 阅读 · 1 评论 -
DataTable与实体类的转换
一、实现DataTable与实体类转换/**** Title:"数据采集" 项目* 主题:表和实体帮助类* Description:* 功能:* 1、DataTable指定行数据转化为实体类* 2、DataTable所有数据转换成实体类列表* 3、实体类列表转换成DataTable* Date:2021* Version:0.1版本* Author:Coffee* Modify Recoder:*/using System;using S原创 2021-06-28 16:08:05 · 1606 阅读 · 0 评论 -
C#获取方法运行花费总时间
一、用Stopwatch类获取方法运行总时间①引用命名空间System.Diagnostics;using System.Diagnostics;②使用方法//实例化一个计时器Stopwatch sw = new Stopwatch();//启动计时器sw.Start();#需要统计花费时间的方法//停止计时sw.Stop();//获取到方法运行花费的总时间(单位:毫秒)long totalTime=sw.ElapsedMilliseconds;//重启计算原创 2021-06-23 22:46:52 · 575 阅读 · 0 评论 -
C#获取实体类的属性名称和对应值
一、定义实体类 //人员信息模型类 private class PeopleInfo { public string ID { get; set; } public string Name { get; set; } public string Sex { get; set; } public string IdCard { get; set; }原创 2021-06-23 16:55:01 · 4970 阅读 · 0 评论 -
修改Visual Studio中C#中的默认脚本模板方法
目录一、修改后的效果二、修改Visual Studio中C#的默认脚本步骤三、验证修改模板是否成功一、修改后的效果二、修改Visual Studio中C#的默认脚本步骤①如果按照Visual Studio的默认安装路径安装该IDE,则路径为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class.原创 2021-05-18 09:19:12 · 1609 阅读 · 1 评论 -
常见的数据库操作(EF、Dapper、NHibernate等ORM框架)的比较及优缺点
一、什么是ORM?①ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。②ORM目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。③ORM实现原理:对象到数据库的映射; 对象与数据库数据的互相转换。二、重量级ORM 以EntityFramework、NHibernate为代表。2.1、优点 面向对象方式访问数据...转载 2020-11-14 18:32:23 · 2448 阅读 · 0 评论 -
C#获取Windows电脑的硬件信息
一、实现效果这是项目工程:项目工程二、实现核心/**** Title:"三维可视化" 项目* 主题:硬件信息类【核心层】* Description:* 功能:* 《1》获取硬件的编号(注意:不能够保证能够获取到所有的硬件信息编号)* 1、获取到CPU编号* 2、获取到主板编号* 3、获取到硬盘编号* 4、获取到BIOS编号* 《2》获取到电脑其他信息((注意:不能够保证能够获取到所有的硬件信息)* 1、.原创 2020-10-24 15:26:08 · 3237 阅读 · 0 评论 -
C#中实现对列表(List)中的数据查重操作
一、列表查重操作核心如下1.1、常用列表的查重操作核心如下: //查找出列表中的所有重复元素 private static List<string> QueryRepeatElementOfList(List<string> list) { List<string> listTmp = new List<string>(); if (list!=null &&a原创 2020-06-29 15:04:54 · 6906 阅读 · 0 评论 -
使用Enigma打包工具将unity打包出来的所有执行文件内容打包成一个exe程序
下载Enigma 文件打包软件:链接地址:Enigma打包软件工具作用:将Unity打包好的工程所有文件内容(含2个文件夹及其2个库文件内容),这个工具就是将这些文件打包成一个exe,支持文件压缩和清理缓存。一、注意事项①文件存储地址可以不一样,但是名字必须要一样②...原创 2020-06-18 21:37:55 · 1518 阅读 · 1 评论 -
C#实现获取文件大小进行单位转换与文件大小比较
一、实现功能①需要获取到文件的大小然后进行合适单位的展示;②将获取到的文件大小统一单位;③能够进行文件大小与设置数值比较;④两个文件比较大小;二、核心脚本/**** Title:"三维可视化" 项目* 主题:文件操作【核心层】* Description:* 功能:* 1、将文件大小(字节)转换为最适合的显示方式* 2、将文件大小(字节)统一转换为K\M\G为单位* 3、将所有文件与设置的数值比较文件的大小* 4、比较两个文原创 2020-06-12 17:50:44 · 2141 阅读 · 0 评论 -
C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
一、在.NET Framework里面提供了三种Timer(计时器)① System.Windows.Forms.Timer② System.Timers.Timer③ System.Threading.Timer转载 2020-05-19 19:14:44 · 4133 阅读 · 2 评论