C#
文章平均质量分 52
Danny_hi
但行好事,莫问前程!
展开
-
C# 获取XML文件内容的多种方式
C# XML文件读取方法原创 2022-09-06 09:54:04 · 10604 阅读 · 0 评论 -
WebClient 从服务器下载/获取文件方式
WebClient 从服务器下载/获取文件方式第一种:使用 WebClient 自封装方法: DownloadFile(); 下载方便、直接。/// <summary> /// 下载文件(WebClient.DownloadFile) /// </summary> /// <param name="downFileUrl">下载文件链接地址</param> /// <param nam转载 2022-04-28 21:13:14 · 2560 阅读 · 0 评论 -
C#进程间通信
C#进程间通信一、新建一个Winform窗体程序TestA,并在窗体上添加一个TextBox控件:然后为窗体添加KeyDown事件,当窗体接收到KewDown消息时,将接收到的数据显示在TextBox控件上,代码如下:namespace TestA{ public partial class Form1 : Form { public Form1() { InitializeComponent(); t转载 2022-04-16 16:56:30 · 2105 阅读 · 0 评论 -
C# 获取文件编码格式
C# 获取文件编码格式添加类:public class FileEncoding { /// <summary> /// 给定文件的路径,读取文件的二进制数据,判断文件的编码类型 /// </summary> /// <param name=“FILE_NAME“>文件路径</param> /// <returns>文件的编码类型</retur转载 2022-01-27 16:30:04 · 5397 阅读 · 3 评论 -
C#版本与.NET版本对应关系以及各版本的特性
C#版本与.NET版本对应关系以及各版本的特性C#版本.NET版本发布日期特性C# 1.0.NET Framework 1.02002-02-13委托、事件C# 1.1.NET Framework 1.12003-04-24APM(异步编程模型)C# 2.0.NET Framework 2.02005-11-07泛型、匿名方法、迭代器、可空类型C# 3.0.NET Framework 3.02007-11-06隐式类型.NET Fr转载 2022-01-24 11:34:43 · 4787 阅读 · 1 评论 -
C# 程序自删除方法
C# 程序自删除方法核心实现方法就是调用 cmd 传入命令行,等待几秒之后删除文件;应用程序在运行时,是不能将 exe 文件进行删除的。但是可以将 exe 改名以及在驱动器内进行移动文件;删除应用程序可以让 cmd 进行删除,在 cmd 可以使用 timeout 命令延迟,然后通过 && 进行执行后续逻辑,从而实现延迟执行命令。让 cmd 延迟执行 DEL 命令进行删除应用,在应用调用删除之后,让应用程序结束即可代码如下static void Main(string[] args)转载 2022-01-10 10:00:21 · 1885 阅读 · 0 评论 -
C#发送邮件
C#发送邮件try{System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(“邮箱SMTP服务器地址”,25);string strFrom = string.Empty;strFrom = res[1];MailAddress senderFrom = new MailAddress(strFrom, “发邮件地址”, Encoding.UTF8);MailAddress senderTo = new MailAd原创 2021-11-03 17:04:18 · 447 阅读 · 0 评论 -
C# Path类---文件路径
C# Path类—文件路径给定如下字符串类型filePath,表示一个文件路径:string filePath = "D:\\Program\\Test\\Config.txt";下面是Path类中的一些常用方法及执行的结果:Path.GetFullPath(filePath); //执行结果为==>"D:\\Program\\Test\\Config.txt";Path.GetDirectoryName(filePath); //执行结果为==>D:\\Program\\Te原创 2021-10-24 11:11:33 · 6276 阅读 · 0 评论 -
C# XML文件的读写操作
C# XML文件的读写操作XML(可扩展标记语言)定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。一、创建xml文件private void Creat() { XmlTextWriter writer = new XmlTextWriter("xmlTest.xml", System.Text.Encoding.UTF8); //使用自动缩进便于阅读原创 2021-08-13 15:24:58 · 10656 阅读 · 2 评论 -
C# 检测是否安装了指定版本的.Net Framework
C# 检测是否安装了指定版本的.Net Framework原文:https://blog.csdn.net/sun_zeliang/article/details/81479775不直接运行软件,而是运行一个引导程序,在引导程序里面判断.Net Framework 的版本,满足条件就启动软件,不满足就提示用户安装.Net Framework下面是如果确定用户的电脑是4.0及以上,才可以使用的新方法,否则只能使用老的方法,一样可以解决各版本需要的 release 可以在微软官方文档中查到https:转载 2021-08-09 11:24:30 · 2132 阅读 · 2 评论 -
c#判断代码是否执行超时的几种方式
c#判断代码是否执行超时的几种方式一、使用委托:delegate void dg();dg dgCase;void method(){ dgCase = () => { Thread.Sleep(10000); MessageBox.Show("代码执行完毕!"); }; WaitHandle wh = dgCase.BeginInvoke(null, null).AsyncWaitHandle; if转载 2021-06-09 14:05:30 · 2738 阅读 · 0 评论 -
C# 设计模式六大原则
C# 设计模式六大原则(1)单一职责原则(2)里氏替换原则(3)依赖倒置原则(4)接口隔离原则(5)迪米特法则(6)开闭原则设计模式六大原则(1):单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改转载 2020-11-23 20:19:57 · 1588 阅读 · 1 评论 -
Visual Studio快捷添加代码片段的方法
Visual Studio快捷添加代码片段的方法VS中设置快捷方式的位置:工具=>代码片段管理器例如:一、“ctor” + 两次Tab键 =>创建构造函数二、“prop” + 两次Tab键 =>添加简写属性三、“propfull” + 两次Tab键 =>添加完整属性...原创 2020-10-25 15:12:28 · 1292 阅读 · 0 评论 -
C#远程读取服务器上的文本内容
C#远程读取服务器上的文本内容WebClient client = new WebClient();byte[] buffer = client.DownloadData("http://xxx.xxx.xxx.xx:8888/announcement.txt");string res = Encoding.GetEncoding("GB2312").GetString(buffer);//string res = System.Text.ASCIIEncoding.ASCII.GetString(原创 2020-10-08 21:05:34 · 2433 阅读 · 1 评论 -
C# BeginInvoke实现异步编程
C# BeginInvoke实现异步编程BeginInvoke实现异步编程的三种模式:1.等待模式在发起了异步方法以及做了一些其他处理之后,原始线程就中断并且等异步方法完成之后再继续;eg:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usi...原创 2019-08-06 14:14:00 · 9938 阅读 · 3 评论 -
C# 将DLL打包到程序中
C# 将DLL打包到程序中有时候我们的程序中包含一些添加的DLL文件,使用起来不方便,我们可以把这些DLL文件打包到程序集中,只剩下一个EXE文件:举例:我先写一个DLL的库,里面只有一个加法运算:namespace ClassCal{ public class Calculate { public int TestAdd(int num1,int num2) { return num1 + num2; }转载 2020-09-01 14:29:38 · 3997 阅读 · 0 评论 -
C# 程序集资源
C# 程序集资源一、添加资源:为更合理的组织资源,可在项目中创建子文件夹,然后在这些子文件夹中添加不同类型的资源,并将资源的属性生成操作改成Resource;(注意:应用程序被命名为AssemblyResources,资源流被命名为AssemblyResources.g.resources)。例如下图在Image文件夹中添加了一个图片资源;二、检索资源: DirectoryInfo folder = new DirectoryInfo(@"D:\Projects\WindowsFormsAppli原创 2020-08-04 17:04:44 · 496 阅读 · 0 评论 -
C# 匿名函数、lambda表达式
C# 匿名函数、lambda表达式、Linq查询一、匿名函数的使用匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。 可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。下面的示例演示了从 C# 1.0 到 C# 3.0 委托创建过程的发展:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Thread原创 2020-06-30 10:46:37 · 2197 阅读 · 0 评论 -
C# 将引用的DLL放入指定文件夹
C# 将引用的DLL放入指定文件夹一、找到程序中的App.config文件,没有就创建一个config文件;然后添加下面的代码:<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup&g原创 2020-06-08 11:06:05 · 4964 阅读 · 1 评论 -
C# 实现简单的文件加密与解密
C# 实现简单的文件加密与解密代码:static class HandleFiles { public static void EncryptFile(string inputFile, string outputFile) //加密 { try { string password = @"12345678"; UnicodeEncoding UE原创 2020-06-05 13:24:17 · 6723 阅读 · 0 评论 -
C# 使用异步编程解决窗体阻塞的简单示例
C# 使用异步编程解决窗体阻塞的简单示例eg1:使用BeginInvokeprivate void button1_Click(object sender, EventArgs e) { var act = new Action(Import); act.BeginInvoke(CallBack, null); //参数null可以作为回调函数的返回参数 Console.WriteLine("Continue!原创 2020-05-14 09:29:26 · 820 阅读 · 0 评论 -
C# invoke和begininvoke 的区别
C# invoke和begininvoke 的区别invoke和begininvoke 区别一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解。首先说下,invoke和begininvoke的使用有两种情况:control中的invoke、begininvoke。delegrate中的invoke、begininvoke。这两种情况是不同的,我们这里要讲的是第1种。下面我们在来说下.NET中对invoke和beg转载 2020-05-12 09:38:03 · 1933 阅读 · 0 评论 -
C# 异步编程---BackgroundWorker类(暂停/继续)
C# 异步编程—BackgroundWorker类下面是一个WPF程序:xaml代码:<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow原创 2020-05-10 22:04:21 · 3488 阅读 · 0 评论 -
C# 异步编程Async和Await
C# 异步编程Async和Await特点:1.方法头中包含Async方法修饰符;2.包含一个或多个await表达式,表示可以异步完成的任务;3.必须具备以下三种返回类型:void,Task,Task< T>;其中Task和Task< T>的返回对象表示将在未来完成的工作,调用方法和异步方法可以继续执行;4.异步方法的参数可以为任意类型任意数量,但不能为out或ref参数;5.按照约定,异步方法的名称应该以Async为后缀;6.除了方法以外,Lambda表达式和匿名方法也原创 2020-05-10 21:24:38 · 331 阅读 · 0 评论 -
C# 异步编程简单示例
C# 异步编程在异步程序中,程序代码不需要按照编写时的顺序严格执行。有时需要在一个新的线程中运行一部分代码,有时无需创建新的线程,但为了更好地利用单个线程的能力,需要改变代码的执行顺序;举例:先不使用异步写一个程序。1.Stopwatch类计时器用来测量代码中不同任务的执行时间;2.两次调用CountCharacters方法来下载网页内容,并返回网站包含的字符数;3.接着四次调用CountToALargeNumber方法,该方法仅执行一个消耗一定时间的任务,并循环指定次数;4.最后打印两个网站原创 2020-05-10 12:38:44 · 1433 阅读 · 0 评论 -
C# 序列化和反序列化
C# 序列化和反序列化常用的序列化有json序列化、xml序列化、文件序列化(二进制序列化),序列化只序列化数据(比如字段的值,属性的值),且序列化只是改变对象的格式。我们首先先添加一个学生类,如下:public class Student { public string Name { get; set; } public int Age { get...原创 2020-05-01 08:35:01 · 244 阅读 · 0 评论 -
C#操作XML文件示例
C#操作XML文件示例一.首先在项目中创建一个Book.xml文件,内容如下:<?xml version="1.0" encoding="utf-8" ?><bookstore> <!--记录书本的信息--> <book Type="必修课" ISBN="7-111-19149-2"> <title>数据结构&...转载 2020-04-24 11:11:05 · 626 阅读 · 0 评论 -
C# 在DLL文件中嵌入文件、图片并读取内容
C# 在DLL文件中嵌入文件并读取内容一.首先新建一个文本文件TestFile.txt,如下图:二.在Visual Studio中添加一个类库MyClassLibrary,然后右击->属性->资源->此项目不包含默认的资源文件,单击此处可创建一个->添加现有文件,选择之前创建的TestFile.txt,如下图:三.在类库中添加获取文本内容的代码,可在类库中默认的C...原创 2020-04-21 14:05:48 · 3742 阅读 · 0 评论 -
C# 泛型
C# 泛型一.泛型类举例下面例子意思:有两个产品类:苹果和书,各有一个不同属性,然后用泛型盒子类:去包装他们。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Example{ c...原创 2020-04-09 19:51:04 · 193 阅读 · 0 评论 -
C# 文件夹的复制及指定文件的删除
指定文件夹的复制(包括文件夹内的所有文件),最后一个bool参数表示:如果可以覆盖目标文件,则为 true;否则为 false。private bool CopyDirectory(string SourcePath, string DestinationPath, bool overwriteexisting) { bool ret = false; ...原创 2020-02-27 11:33:09 · 330 阅读 · 0 评论 -
C# 文件的加解密
一.加密文件private void EncryptFile(string inputFile, string outputFile) //加密 { try { //string password = @"123456"; string password = tb_pas...原创 2019-12-10 16:36:54 · 291 阅读 · 0 评论 -
C#保存已存在相同文件名的文件时,自动追加一个数字以区分同名文件
C#保存已存在相同文件名的文件时,自动追加一个数字以区分同名文件private void getFileSavaPath(string fileName) { string localFilePath = ""; SaveFileDialog sfd = new SaveFileDialog(); sfd.F...原创 2019-12-03 09:44:23 · 3266 阅读 · 1 评论 -
C# 实现读写Excel
1.向Excel模板中写入数据并另存新档:Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); //app = null ,则代表服务器上“服务器上缺少Excel组件,需要安装Office软件”; //设置app属性,及其进行如下...原创 2019-11-28 11:34:33 · 741 阅读 · 0 评论 -
C# NPOI组件的使用
NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。1.从Excel文件中读取数据:IWorkbook workbook = null; //新建IWorkbook对象 //string fileName = "E:\\Excel2003.xls"; string fileName = AppDomain.Curr...原创 2019-11-26 15:45:05 · 855 阅读 · 0 评论 -
C#WinForm无边框窗体移动方法、模仿鼠标单击标题栏移动窗体位置
方法一1.定义一个位置信息Point用于存储鼠标位置private Point mPoint;2.给窗体等控件增加MouseDown和MouseMove事件private void panel1_MouseDown(object sender, MouseEventArgs e){ mPoint = new Point(e.X, e.Y);}private void pa...转载 2019-06-05 09:40:07 · 300 阅读 · 0 评论 -
C#字符集编码的使用
C#字符集编码的使用ASCII:西欧字符集GB2312:国家简体中文字符集,兼容ASCII。BIG5:统一繁体字编码GBK:它是GB2312的扩展,支持简体和繁体字,兼容GB2312GB18030:在GBK基础上继续扩展生僻字和日文、朝鲜语等的编码,兼容GBKUNICODE:为世界650种语言进行统一编码,只兼容ASCII对GB系列都不兼容eg:public static int ...转载 2019-06-05 13:49:56 · 3196 阅读 · 0 评论 -
C#设置按钮鼠标进入时半透明样式
C#设置按钮鼠标进入时半透明样式设置按钮的属性:FlatStyle = Flat;BorderSize = 0;BackColor = Transparent;设置MouseEnter触发函数:private void button1_MouseEnter(object sender, EventArgs e){button1.FlatStyle = FlatStyle.Flat...原创 2019-06-04 17:41:35 · 1770 阅读 · 0 评论 -
C#获取当前应用程序所在路径及环境变量
C#获取当前应用程序所在路径及环境变量本文引用路径一、获取当前文件的路径string str1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。(备注:按照定义,...转载 2019-05-20 10:48:22 · 449 阅读 · 0 评论 -
C#String 类的方法
String 类的方法String 类有许多方法用于 string 对象的操作。下面提供了一些最常用的方法:序号 方法名称 & 描述1 public static int Compare( string strA, string strB )比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。2 public static int ...转载 2019-05-09 14:11:11 · 369 阅读 · 0 评论 -
C#中String和StringBuilder
C#中 String 和 StringBuilder 区别1.Stringstring是各位用的最多的类型之一,是一个特殊的引用类型,直接派生于Object,因此它的值储存在托管堆上。构造一个新字符串的时候,不需要用new。string s = "This is right"; //这是正确的string b = new String("This is error"); //这是错误的...转载 2019-05-08 14:10:37 · 250 阅读 · 0 评论