![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
这被禁忌的游戏
这个作者很懒,什么都没留下…
展开
-
C# Winform实现捕获窗体最小化、最大化、关闭按钮事件
C# Winform实现捕获窗体最小化、最大化、关闭按钮事件原创 2022-08-09 09:31:51 · 1877 阅读 · 2 评论 -
平均风向风速计算(单位矢量法)
平均风向风速计算,单位矢量法原创 2022-06-24 14:07:52 · 5774 阅读 · 0 评论 -
C# DataGridView知识点(列宽自适应、数据清空)
宽度自适应//指定列this.dgvQueryACountResult.Columns[@"列名"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;//所有列 this.dgvQueryACountResult.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);//宽度自适应AutoSizeMode 属性枚举值含义: // // 摘要:原创 2022-05-18 18:46:23 · 2549 阅读 · 0 评论 -
C# 运算符重载
重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。 class Box { private double length; // 长度 private double breadth; // 宽度 private double height; // 高度 public double getVolume()原创 2022-04-11 23:35:30 · 121 阅读 · 0 评论 -
多任务—死锁问题
class StateObject { private int State1 = 5; private int State2 = 5; Object _Lock1 = new object(); Object _Lock2 = new object(); public void ChangeState1() { lock (_Lock1) { ...原创 2022-03-27 19:52:14 · 575 阅读 · 0 评论 -
C# 多任务—资源访问冲突问题
多个任务同时访问和修改同一个文件或者数据的时候,由于多个任务同时修改文件或数据,就有可能导致数据出现不可预测的异常错误: class StateObject { private int State = 5; public void ChangeState() { if (State == 5) { Thread.Sleep(1);原创 2022-03-26 18:43:12 · 927 阅读 · 0 评论 -
C# 多任务—任务的创建
class Program { static void Test() { for (int i = 0; i < 1000; i++) { Console.Write("A "); } } static void FirstDownload() { Console.WriteLi...原创 2022-03-25 00:18:09 · 781 阅读 · 0 评论 -
C# 窗口关闭再次确认及取消
private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { DialogResult Result = MessageBox.Show("程序将被关闭,请确认是否继续","警告", MessageBoxButtons.OKCancel); if (Result == DialogResult.Cancel) { ...原创 2022-03-22 10:16:24 · 1957 阅读 · 0 评论 -
C# 线程
线程的优先级可以通过Thread类Priority属性设置,Priority属性是一个ThreadPriority型枚举,列举了5个优先等级:AboveNormal、BelowNormal、Highest、Lowest、Normal。普通线程的优先级默认为Normal;如果想有更高的优先级,可设置为AboveNormal或Highest;如果想有较低的优先级,可设置为BelowNormal或Lowest。控制线程1获取线程的状态(Running还是Unstarted),当我们通过调用Thread对象的S原创 2022-03-11 22:16:41 · 1248 阅读 · 0 评论 -
C# 反射和特征
元数据与反射 程序是用来处理数据的,文本和特征都是数据,而我们的程序本身(类的定义和BCL中的类)这些也是数据。(BCL:Basic Class Lib基础类库) 有关程序及其类型的数据被称为元数据(metadata),他们保存在程序的程序集中。 程序在运行时,可以查看其它程序集或其本身的元数据。一个运行的程序查看本身的元数据或者其他程序集的元数据的行为叫做反射, class Class { private int a; private int b原创 2022-01-19 10:04:09 · 244 阅读 · 0 评论 -
c# 委托与事件
事件事件(event)基于委托,为委托提供一个发布/订阅机制,我们可以说事件是一种具有特殊签名的委托。什么是事件? 事件(event)是类或对象向其他类或对象通知发生的事情的一种特殊签名的委托。事件的声明 首先必须声明该事件的委托类型。例如 public delegate void BoilerLogHandler(string status); 然后,声明事件本身,使用 event 关键字: public event BoilerLogHandler BoilerEven原创 2022-01-18 20:53:22 · 528 阅读 · 0 评论 -
C# 泛型
c#通过泛型避免强制类型装换,增强类型安全性,减少装箱量,并且让程序员更轻松地创建常规化的类和方法,泛型类和方法接受类型参数,它们指定了要操作的对象的类型,C#是在尖括号中提供类型参数来指定泛型类,如下所示: class Queue<T> { ... }T就是类型参数,作为占位符使用,会在编译时被真正的类型取代。写代码实例化泛型Queue时,需指定用于取代T的类型(int,double等),在类中定义字段和方法时,可用同样的占位符指定这些项的类型。示例代码如下:原创 2022-01-12 22:34:45 · 183 阅读 · 0 评论 -
C# DataTable使用问题汇总(个人笔记)
1.该行已经属于另一个表dt.Rows.Add(dtQ3.Rows[0].ItemArray);2.不能将 Column“ ”设置为 null。请改用 DBNull DataRow Row = dataTable.NewRow(); Row[0] = DBNull.Value;//在c#中,Null是空指向,不存在对应的存储地址。而DBNull.Value则是指向一个内存为空的地址。//DBNull是指插了一个空值,数据库字段获取到的也是空值,而Null是指程序中空引用,或对象为空,没有原创 2022-01-12 09:38:32 · 1445 阅读 · 0 评论 -
C# 委托、Action委托、Func委托、多播委托、匿名方法、Lambda表达式
class Program { delegate void delegate_write(string str); delegate int delegate_Sum(int a,int b); delegate int delegate_Test(int a, int b); delegate string delegate_GetString(); static void Main(string[] ar...原创 2022-01-11 23:44:09 · 471 阅读 · 0 评论 -
C# 时间差获取
static void Main(string[] args) { DateTime time1 = DateTime.Now; DateTime time2 = time1.AddHours(1).AddMinutes(45); TimeSpan span = time1.Subtract(time2).Duration(); //先求差值 再取绝对值 Console.Write...原创 2021-12-27 15:05:16 · 406 阅读 · 0 评论 -
C# 多线程与信号量
private static Semaphore white = new Semaphore(1, 1);//信号量,第一位数是1,所以先执行white.WaitOne()。 private static Semaphore black = new Semaphore(0, 1);//信号量 /* * new Semaphore(0, 1); 构造函数第一个参数,表示我们还可使用的授权数。 第二个参数表示我们最大可申请的授权数 ...原创 2021-12-24 09:56:25 · 420 阅读 · 1 评论 -
C# 多线程与互斥量
public static Mutex mutex = new Mutex(false); private static int count = 5000; static void Main(string[] args) { Thread Thread1 = new Thread(fun1); Thread Thread2 = new Thread(fun2); Thr...原创 2021-12-23 17:17:41 · 591 阅读 · 0 评论 -
C# 多线程的创建以及暂停与启动
private static AutoResetEvent Are1 = new AutoResetEvent(false); private static AutoResetEvent Are2 = new AutoResetEvent(false); static void Main(string[] args) { Thread thread = new Thread(fun_thread);//创建线程 ...原创 2021-12-22 18:30:49 · 1636 阅读 · 0 评论 -
C# 自定义控件无法加载
自己写的一个自定义控件无法在设计模式下使用. 拖动到窗口时提示 " 未能加载工具箱项 "解决方法:将项目的生成平台目标改为 x86或者Any CPU,在这两种模式下进行窗口设计、程序编写;发布的时候再改成x64去编译即可;...原创 2021-12-20 18:46:01 · 1905 阅读 · 0 评论 -
C#正则表达式判断日期类型及数值类型
/// <summary> /// 是否为日期型字符串 /// </summary> /// <param name="StrSource">日期字符串(2008-05-08)</param> /// <returns></returns> public static bool IsDate(string StrSource) ...原创 2021-11-09 14:35:53 · 433 阅读 · 0 评论 -
Winform 如何让 DateTimePicker 控件 仅显示年月 不显示日
控件 -> 属性然后在 外观 的 Format 选择 Custom行为 的 CustomFormat 输入 yyyy-MMShowUpDown 更改为 True效果如下:1 正常情况,显示年月日 2 只显示年月 3 只显示年原创 2021-10-14 15:46:00 · 4864 阅读 · 0 评论 -
VS2015遇到异常,这可能是由某个扩展导致的
可能原因一:把隐藏文件夹中的:C:\Users\a\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache 里面的Microsoft.VisualStudio.Default.cache 这个文件给删除了,重新打开生成vs项目,OK注意:a是自己电脑的用户名,根据自己电脑替换掉a可能原因二:原因是安装程序时将注册表修改了,解决方案:修改注册表:64位机器:[HKEY_CLASSES_ROOT\CLSID{73B7DC0.原创 2021-10-02 00:04:55 · 1744 阅读 · 0 评论 -
C#获取各国时间
获取当地时间: DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local); DateTime dt1 = TimeZoneInfo.ConvertTimeFromUtc(dt, TimeZoneInfo.FindSystemTimeZoneById("Romance Standard Time"));//参数对应国家或者时区 ***对于有夏令时冬令时的区域,程序会自动调整**原创 2021-04-27 13:43:02 · 2199 阅读 · 0 评论 -
电脑防火墙开启无法ping通
启动这几个出入站规则即可原创 2020-11-12 18:55:37 · 173 阅读 · 0 评论 -
远程连接MySQL,防火墙阻止访问,解决方法
xp/2003添加防火墙例外端口打开防火墙,选择例外选项卡,添加端口名称:mysqlport端口号:3306选中TCPwin7添加防火墙例外端口入站规则设置第一步 选择 入站规则 然后 新建规则,选择 端口,然后下一步第二步 选择TCP 选择特定端口 然后输入端口,如有多个端口需要用逗号隔开了 例如: 3306第三步 选择允许连接第四步 选择配置文件第五步 输入规则名称 mysqlport出站规则设置第一步 选择出站规则 然后 新建规则,选择 端口,然后下一步第二步 选择TCP原创 2020-11-12 18:51:52 · 593 阅读 · 0 评论 -
NPOI设置单元格宽和高
1.设置单元格宽1.1 Excel中单元格的宽实际就是列宽,HSSFSheet有个方法叫SetColumnWidth,共有两个参数:一个是列的索引(从0开始),一个是宽度。示例:HSSFWorkbook hssfworkbook = new HSSFWorkbook();HSSFSheet sheet1 = hssfworkbook.CreateSheet(“Sheet1”);sheet1.SetColumnWidth(1, 100 * 256);讲解:SetColumnWidth的第二个参数要原创 2020-06-12 16:37:46 · 5840 阅读 · 0 评论 -
C#创建注册表项时会创建到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node下的问题
写注册表的 HKEY_LOCAL_MACHINE\SOFTWARE 时,发现值会被写在 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node 目录下。结调查才发现,原来Windows版本中的注册表细分为32位和64位。大多数32位配置单元与64位配置单元中的对应配置相同,反之亦然。在默认情况下,32位配置单元显示在64位Windows版本的WOW6432Node节点中。重定向过程对于32位应用程序是透明的,即它们可以访问注册表配置单元,就好像它们在32位环境中工作一样,尽管数据存储原创 2020-06-08 16:02:20 · 1594 阅读 · 1 评论 -
IIS部署Web服务器,用公网IP访问
1、部署在云服务器上,需要将网站绑定IP地址设置为"全部未分配",否则会出错。设置如图1,设置IP之后外网访问错误为图2(云服务器已经默认进行了端口的重映射,不用在路由器手动添加端口映射)图1 图2...原创 2020-05-26 18:20:31 · 4059 阅读 · 0 评论 -
C# 软件以管理员模式运行
打开程序集里的Program.cs文件,并将其中Main方法中的代码替换为以下代码即可实现程序默认以管理员身份运行: static void Main()//将程序改为以管理员方式运行 { /** * 当前用户是管理员的时候,直接启动应用程序 * 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行 */ //获得当前登录的Windows用原创 2020-05-11 17:08:51 · 186 阅读 · 0 评论 -
C#创建注册表项时会创建到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node下的问题
写注册表的 HKEY_LOCAL_MACHINE\SOFTWARE 时,发现值会被写在 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node 目录下。结调查才发现,原来Windows版本中的注册表细分为32位和64位。大多数32位配置单元与64位配置单元中的对应配置相同,反之亦然。在默认情况下,32位配置单元显示在64位Windows版本的WOW6432Node节点中。重定向过程对于32位应用程序是透明的,即它们可以访问注册表配置单元,就好像它们在32位环境中工作一样,尽管数据..原创 2020-06-08 15:47:59 · 1270 阅读 · 0 评论 -
C# https通讯
最近项目中需要通过https对接客户的服务器,客户给的格式为.pem和.key的证书和私钥文件,然后我没有找到C#通过证书和密钥两个文件创建证书的方法,要通过X509Certificate2创建证书只能是引入一个文件,...原创 2020-03-03 11:22:05 · 1681 阅读 · 0 评论 -
对于固定域名的socket连接方法
1、可以通过域名获取到IP地址,再创建连接,当该IP失效之后,则需重新创建,通过域名获取IP方法: IPHostEntry hostinfo = Dns.GetHostEntry(“https://www.baidu.com/”); IPAddress[] aryIP = hostinfo.AddressList; IPAddress ip = aryIP[0];2、创建socket连接...原创 2020-02-19 18:59:47 · 1662 阅读 · 0 评论 -
添加GMapControl提示“没有可放置在工具箱的组件”
低版本的VS软件可以通过 “工具箱右键->选择项->浏览->选择组件类型->浏览->选择DLL。。。”,但VS2015却出现“没有可放置在工具箱上的组件”的问题,这是有个简单的解决方法:通过鼠标选择要添加的Dll,按住鼠标左键不放直接将Dll直接拖到工具箱上,添加完成!!!...原创 2019-11-20 16:31:59 · 678 阅读 · 0 评论 -
C# 访问修饰符
默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它。可以用internal访问修饰符关键字显式指定,但这不是必须的,类在定义时默认为此类型的类。但是C# 方法默认访问级别: private。方法或者属性的修饰符的访问级别如下:1.Public: 公有的, 是类型和类型成员的访问修饰符。对其访问不受任何限制。2.Private:私有的,私有成员只有在声明它们的类和结构体中才是可访问的...原创 2019-11-14 15:48:39 · 182 阅读 · 0 评论 -
C#获取二维数组行数及列数
C#获取二维数组行数及列数实例实例static void Main(string[] args){// 如何获取二维数组中的元素个数呢?int[,] array = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 7, 8, 9 } };//定义一个4行3列的二维数组int i = array.Rank;//获取维数int ...原创 2019-10-21 17:08:48 · 1417 阅读 · 2 评论 -
c#TXT文件的读取与保存
private void btnSave_Click(object sender, EventArgs e)//保存 { SaveFileDialog SaveAddr = new SaveFileDialog(); SaveAddr.Filter = "文本文件.txt|*.txt";//设置Filter属性,及...原创 2019-10-21 19:27:00 · 1785 阅读 · 0 评论