随笔分类 -  C#学习笔记

学习C#总结及转载
摘要:在声明时加上参数CharSet = CharSet.Unicode [DllImport("kernel32", CharSet = CharSet.Unicode)] CharSet: 指示如何向方法封送字符串参数,并控制名称重整。 最后,附上读写ini文件,解决出现乱码的代码 [DllImpor 阅读全文
posted @ 2021-01-05 10:08 vv彭 阅读(3226) 评论(1) 推荐(0)
摘要:C#综合揭秘——深入分析委托与事件 引言 本篇文章将为你介绍一下 Delegate 的使用方式,逐渐揭开 C# 当中事件(Event)的由来,它能使处理委托类型的过程变得更加简单。还将为您解释委托的协变与逆变,以及如何使用 Delegate 使 Observer(观察者)模式的使用变得更加简单。在事 阅读全文
posted @ 2021-01-04 20:56 vv彭 阅读(141) 评论(0) 推荐(0)
摘要:1.OpenFileDialog private void btnOpen_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = @"C:\Users 阅读全文
posted @ 2021-01-04 20:47 vv彭 阅读(164) 评论(0) 推荐(0)
摘要:前文传送门,dotNET开发基础汇总系列StackOverflow 20万阅读的问题:如何实现异步Task超时的处理Func和Action委托简单用法C#异步编程基础入门总结C#泛型入门学习泛型类、泛型集合、泛型方法、泛型约束、泛型委托C#异常处理总结 1.前言 异步这概念刚开始接触的时候,不是那么 阅读全文
posted @ 2021-01-04 20:33 vv彭 阅读(703) 评论(0) 推荐(0)
摘要:Task.Run 是在 dotnet framework 4.5 之后才可以使用, Task.Factory.StartNew 可以使用比 Task.Run 更多的参数,可以做到更多的定制。 可以认为 Task.Run 是简化的 Task.Factory.StartNew 的使用,除了需要指定一个线 阅读全文
posted @ 2021-01-04 20:30 vv彭 阅读(301) 评论(0) 推荐(0)
摘要:本文参考:https://www.cnblogs.com/caokai520/p/4921706.html IL DASM反编译工具 使用C#的猿人或多或少都会对微软的IL反编译工具(ildasm.exe)有所认识。我最早接触到这工具是公司同事使用他反编译exe程序,进行研读和修改。感觉他还是很强大 阅读全文
posted @ 2021-01-04 17:29 vv彭 阅读(1156) 评论(0) 推荐(1)
摘要:如下代码,我在关闭窗体是把RadioButton的当前索引值存到ini文件中 ridioButtonIndex = 0; foreach (Control con in groupBoxClear.Controls) { if (con is RadioButton) { if ((con as R 阅读全文
posted @ 2021-01-03 18:02 vv彭 阅读(349) 评论(0) 推荐(0)
摘要:下面是自定义的一个函数,参数分别为:文件夹名称、文件后缀、保存天数 逻辑是获取当前系统的时间,和文件创建时间去作差,如果结果大于保存天数,就删除它 /// <summary> /// 定期清除文件 /// </summary> /// <param name="fileDirect">文件夹</pa 阅读全文
posted @ 2021-01-03 17:53 vv彭 阅读(2146) 评论(0) 推荐(1)
摘要:C# 委托 、事件、同步、异步知识点归纳 一、委托 基本用法: 1.声明一个委托类型。委托就像是‘类'一样,声明了一种委托之后就可以创建多个具有此种特征的委托。(特征,指的是返回值、参数类型) public delegate void SomeKindOfDelegate(string result 阅读全文
posted @ 2020-12-19 09:07 vv彭 阅读(862) 评论(0) 推荐(0)
摘要:C# 关键字extern用法 修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 属性一起使用;在这种情况下,该方法还必须声明为 static,如下面的示例所示:[DllImport("avifil32.dll")]pr 阅读全文
posted @ 2020-12-17 21:19 vv彭 阅读(422) 评论(0) 推荐(0)
摘要:FormBorderStyle设置为None,就变成无框的啦,不过你会发现这样窗体上就没有原来的最大最小化和关闭按钮了哦,所以要自己补上去。弄个panel放上去,置顶,可以设置panel的背景色和背景图片什么的,详细布局就不赘述啦,见下图,主要是再放三个小panel进去,用来做最小化、最大化、关闭按 阅读全文
posted @ 2020-12-16 15:29 vv彭 阅读(514) 评论(0) 推荐(0)
摘要:本文目录: 线程的简单使用 并发和异步的区别 并发控制 - 锁 线程的信号机制 线程池中的线程 案例:支持并发的异步日志组件 线程的简单使用 常见的并发和异步大多是基于线程来实现的,所以本文先讲线程的简单使用方法。 使用线程,我们需要引用System.Threading命名空间。创建一个线程最简单的 阅读全文
posted @ 2020-12-12 09:12 vv彭 阅读(745) 评论(1) 推荐(2)
摘要:本文转自:https://www.cnblogs.com/lsgsanxiao/p/5523282.html https://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html invoke和begininvoke 区别 一直对in 阅读全文
posted @ 2020-12-09 14:03 vv彭 阅读(177) 评论(0) 推荐(0)
摘要:c#窗体构造函数比窗体加载函数Form1_Load()还要早,构造窗体最先运行的函数 一般里面有这样的一句代码 InitializeComponent(); 大概是初始化的意思吧 如果我们在InitializeComponent();之前引用窗体控件,肯定会报错 因为还没创建这些控件 阅读全文
posted @ 2020-12-04 16:39 vv彭 阅读(911) 评论(0) 推荐(0)
摘要:tabPage选项卡在tabControl控件容器里面,而tabControl是一个类,tabPage也是一个类,使用tabControl1.tabPage1是错误的,他们的关联通过集合TabPages来绑定,相当与tabControl控件提供了容器给tabPage控件 在窗体中直接引用tabCon 阅读全文
posted @ 2020-12-04 16:34 vv彭 阅读(3972) 评论(0) 推荐(0)
摘要:知道程序中控件的名字,在窗口设置中找到控件的位置 如同在属性的控件选择中,输入已知控件的首字母,然后再去找到你想找的那个控件 阅读全文
posted @ 2020-12-01 19:07 vv彭 阅读(1981) 评论(0) 推荐(0)
摘要:一直更 一、定时器 1.Timer.Elapsed 事件: 达到设置的间隔时间将设置该事件的事件处理程序,启动计时器。通俗的解释就是每隔自定的间隔时间就会触发一次事件,若不暂停将无限循环触发,相当于一个计时器。 2.Timer.AutoReset 属性: 获取或设置一个布尔值,该值指示 Timer  阅读全文
posted @ 2020-11-30 09:55 vv彭 阅读(132) 评论(0) 推荐(0)
摘要:使字符串中的转义字符(\)不转义,整个字符串原封不动被引用 阅读全文
posted @ 2020-11-26 09:09 vv彭 阅读(102) 评论(0) 推荐(0)
摘要:ComboBox: 属性: 1.item:获取一个对象,该对象表示此 ComboBox 中所含的项的集合。(combobox里的值) 2.SelectedItem:获取或设置 ComboBox 中当前选定的项。(或者当前combobox选择的值) 3.SelectedIndex:获取或设置指定当前选 阅读全文
posted @ 2020-11-25 20:24 vv彭 阅读(142) 评论(0) 推荐(0)
摘要:int resualt = (int)fn?.Invoke(a, b); 其中fn是有两个参数一个int返回值的多播委托,这个看起来很精炼,大概意思也不懂 个人理解为使用先判断fn?,再传值以及输出为“int?”类型,再用(int)强转 卓见哈哈哈 阅读全文
posted @ 2020-11-24 16:55 vv彭 阅读(445) 评论(0) 推荐(0)