![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#特性
励志35岁去越南躺平的造砖核动黑马程序猿
这个作者很懒,什么都没留下…
展开
-
EventHandler封装事件
泛型委托对应的事件:public event EventHandler priceChanged;EventHandler委托定义出来的事件,如果委托使用了泛型,那么第二个参数就可以用来传递参数。一般事件:public event EventHandler priceChanged2;背景:委托类型EventHandler使用泛型封装事件。原创 2024-04-07 20:08:00 · 291 阅读 · 0 评论 -
获取配置文件
背景:在做winform的时候很经常就是将数据库的连接字符串信息保存到配置文件中,今天突然发现asp.net core webapi中的获取方式是很不一样的。这个的是使用最好是自己写一个Configuration类,用于对配置文件的访问。-- 这两个拓展方法使用的NuGet包都是官方提供的。配置文件保存在appsettings.json中。-- 第二个就是我们自己增加的数据库连接字符串。-- 第二个就是我们自己增加的数据库连接字符串。在.net framework中。配置文件在App.config中。原创 2024-04-04 00:23:08 · 340 阅读 · 0 评论 -
Quartz.Net详解(定时任务和调度)
http://t.csdnimg.cn/Jinaphttp://t.csdnimg.cn/Jinap原创 2024-04-02 10:37:02 · 239 阅读 · 0 评论 -
C#中,params关键字(可变数组)在委托中的特别用法
总结,在委托中定义的时候使用了params这个关键字,委托指向的执行不用带上这个关键字都行,匿名方法和Lambda就不有这个参数了。都是有可变数组的效果的。按照直觉来说,委托定义的传入参数、委托指向方法的传入参数、匿名方法/Lambda的传入参数应该要一样的。1、匿名方法就没有这个参数了,调用这个匿名方法的时候就像有这个关键字那样调用效果。2、这个委托执行的方法,无论有没有这个可变数组关键字都能起到可变数组的效果。前提:定义委托的时候使用上了这个关键字。原创 2023-12-14 20:29:43 · 377 阅读 · 0 评论 -
C#中UDP的简单使用+样例
-发送的数据是byte类型,指定ip和端口。--需要开个线程不停地调用Receive。原创 2023-12-13 15:36:30 · 475 阅读 · 0 评论 -
C# 使用NPOI操作EXCEL
引用->管理NuGet程序包->添加NOPI。原创 2023-08-26 23:24:43 · 2352 阅读 · 0 评论 -
LINQ在实际中的应用
直接找出了所有id为1的。原创 2023-08-15 21:15:42 · 101 阅读 · 2 评论 -
Timer”是“System.Windows.Forms.Timer”和“System.Threading.Timer”之间的不明确的引用
编译器不知道使用哪个命名空间的Timer,要用就带上命名空间就行。原创 2023-08-11 00:19:55 · 388 阅读 · 0 评论 -
C#使用Encoding转换指定为:简体中文(GB2312)
想知道当前默认的编码:string s = Encoding.Default.EncodingName;原创 2023-08-10 21:43:16 · 2694 阅读 · 0 评论 -
C#中Convert.ToInt32() 和 int.Parse()的区别
`int.Parse()`:如果字符串无法成功转换为整数类型,`int.Parse()` 方法会引发 `FormatException` 异常。- `Convert.ToInt32()`:如果字符串无法成功转换为整数类型,`Convert.ToInt32()` 方法会返回 0。而 `int.Parse()` 方法则更适用于确切的字符串输入,并且对于转换失败会引发异常的情况。如果尝试将其他类型的值传递给 `int.Parse()`,将会引发 `FormatException` 异常。原创 2023-08-03 20:47:47 · 1348 阅读 · 0 评论 -
自定义控件如何实现双击事件
需要使用的就到该控件的事件中找到自己定义的UserControlClick事件,使用就行。然后再自定义控件中注册双击事件,双击将事件发送出去。首先在控件内定义好委托和事件。原创 2023-08-02 17:00:29 · 311 阅读 · 0 评论 -
C#线程的安全(一次只能一个线程访问该方法)
在方法内部使用:lock(this){}原创 2023-07-24 10:00:24 · 345 阅读 · 0 评论 -
C#实现系统进程的调用,查看进程调用的模块
foreach循环一下FileName就可以查看调用了什么dll文件了。1.需要使用命名空间:System.Diagnostics;2.Process.GetProcess()可以获取所有进程。StartTime:进程启动时间。Handle:关联进程的本机句柄。HandleCount:句柄数。Id:经常唯一标识符。5.Process里面有的方法。3.获取进程调用的模块。原创 2023-07-24 09:57:33 · 474 阅读 · 0 评论 -
C#中的异步和回调
1.异步可以理解成简单版的线程,依靠委托实现。2.回调函数是异步执行完后马上执行的函数。注:myDel是int类型的委托。原创 2023-07-24 08:32:14 · 265 阅读 · 0 评论 -
System.UnauthorizedAccessException:“对路径“D:\desktop\tmp”的访问被拒绝。”
方法一:将Visual Studio用管理员权限开启。使用FileStream写入的时候报错。方法二:导入到指定文件而不是文件夹。原创 2023-07-19 23:10:25 · 306 阅读 · 0 评论 -
C# LINQ复合from子句查询
实现对有成绩是85分以上的学生查询。原创 2023-07-18 22:37:42 · 105 阅读 · 0 评论 -
C# vs报错:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
没有安装access数据库引擎,去安装一些就行了,最新的是2016的,2021的excel和access一样可以用。原创 2023-07-13 16:35:45 · 348 阅读 · 0 评论 -
C# 数据的动态视图DataView
2.如果执行的是多个查询,即多个select;每个查询对应DataSet里面的DataTable[0]、DataTable[1]...前言:想要在数据中展示页面,可能会需要多次读取数据库,使用DataSet可以将数据库中的整个表的信息保存到本地,不用再向数据库读取。数据库有视图View,保存在本地也有类似的东西那就是动态视图DataView。1.DataSet用SqlAdapter的Fill();3.关系:DataSet->DataTable->DataView。像在数据库中添加条件就行。原创 2023-07-12 21:42:19 · 603 阅读 · 0 评论 -
vs报错:线程间操作无效: 从不是创建控件的线程访问它
C#报错,winform原创 2023-07-12 11:01:07 · 192 阅读 · 0 评论 -
.Net异常结构 C#异常 异常设计架构
原创 2023-07-11 15:17:42 · 31 阅读 · 0 评论 -
c#数据类型和数据库类型对应表
原创 2023-07-11 11:20:27 · 46 阅读 · 0 评论 -
C#序列化和反序列化
/返回的是object类型。//第二个参数是对象实例,将对象保存到了文件中。FileStream fs = new FileStream(路径+文件名, FileMode.Create)FileStream fs = new FileStream(路径+文件名, FileMode.Open)1.首先到要保存的类加上序列化标记:[Serializable]好处:可以直接保存对象,文件保存对象。原创 2023-07-09 23:34:09 · 115 阅读 · 0 评论 -
C#报错:无法从“方法组”转换为“System.Threading.ThreadStart”
原因方法接收的形参只能是object类型,把方法CountMethod里的参数改为object就行。原创 2023-07-07 16:08:08 · 1199 阅读 · 0 评论 -
C# string类型转换为枚举类型的两种方法
方法2:bool b = Enum.TryParse(s, out e1);//这里的用法和int的一样。一个是直接转换,一个是TryParse,枚举的TryParse的用法和int的类似就记录一下。方法1:e e1 = Enum.Parse(typeof(e), s);原创 2023-07-07 13:51:51 · 4168 阅读 · 1 评论 -
C#中InvokeRequired
跨线程访问控件是不被允许的,需要判断是否是创建线程访问控件。原创 2023-07-06 15:15:11 · 529 阅读 · 1 评论 -
C#加载XML文件
4.GetAttribute方法就是简单的键值对获取属性值:return xmlNode.Attribute[attributeName].value;注意:使用Application.StartupPath要添加引用:System.Windows.Form;3.第一个节点加载比较特殊,使用XmlDocument里面的SelectSingleNode方法。2.在代码中加载到XmlDocument。1.首先设置测试xml文件。原创 2023-07-05 20:39:13 · 448 阅读 · 1 评论 -
C#中readonly和const区别
编译时常量:DateTime.Now、DateTime.Today......需要编译后才知道数值是什么。最近发现使用readonly和const都可以定义一个不可以改变的字段,但是这两个有什么不一样的地方呢?1、const是默认静态的,readonly如果想要成为静态就得加上static。2、const必须声明就初始化,readonly可以到构造函数初始化。3、可以做局部变量(方法内变量),readonly不行。5、const必须是字面常量,不能是编译时常量。4、readonly可以通过反射进行修改。原创 2023-06-20 12:16:43 · 36 阅读 · 0 评论 -
C#系统委托Func做形参
委托可以理解为方法的指针,指针做参数,实参使用Lambda来写,可以把程序写得更加灵活简洁。如果想实现乘法就改为:(a, b) => a*b;解释:Func最后一个是返回值,其它都是接受值。调用该方法传入参数:(a, b)=>a+b;原创 2023-06-19 14:21:27 · 298 阅读 · 0 评论 -
在VS中使用另一个项目/类库的类
在VS中使用另一个项目/类库的类原创 2023-05-02 22:44:10 · 502 阅读 · 1 评论 -
C#匿名类型+linq分组查询
【代码】C#匿名类型+linq查询。原创 2023-07-10 21:09:38 · 122 阅读 · 0 评论