随笔分类 -  c#基础

文件、文件夹按名称、时间排序
摘要:1、按名称顺序排列 private void SortAsFileName(ref FileInfo[] arrFi) { //正序 Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { return x.Name.CompareTo(y.Name 阅读全文

posted @ 2020-02-06 20:10 mol1995 阅读(993) 评论(0) 推荐(0)

c#操作sqlite db3数据库
摘要:首先添加引用 System.Data.SQLite.dll,引用只用添加这个,但SQLite.Interop.dll文件必须也和它同时放在Debug目录下 然后可用: SQLiteConnection conn= new SQLiteConnection($"Data Source={tbFileP 阅读全文

posted @ 2019-10-19 11:30 mol1995 阅读(1084) 评论(0) 推荐(0)

CTR+A组合键 以及终止按键事件传递
摘要:Key UP 或Down 事件中 实现CTR+A全选 if ( Control.ModifierKeys==Keys.Control && e.KeyCode == Keys.A) { tb_pnts.SelectAll(); } 阻止按键事件传递,须在KeyDown事件中,而不能在KeyUp事件中 阅读全文

posted @ 2019-08-30 23:02 mol1995 阅读(674) 评论(0) 推荐(0)

BackgroundWorker 的输入、输出参数、进度条与文字刷新、取消机制、返回事件
摘要:1. 定义全局变量 BackgroundWorker backgroundwoker; 2. 点击开始按钮或其它时机初始化 backgroundwoker = new BackgroundWorker(); backgroundwoker.WorkerSupportsCancellation = t 阅读全文

posted @ 2019-08-27 17:30 mol1995 阅读(730) 评论(0) 推荐(0)

浅复制不能传递,重新赋值就重新浅复制
摘要:如 ADORPNT p1 = GetADPointFromName("张三"); ADORPNT p2 = GetADPointFromName("李四"); List<ADORPNT> pts = new List<ADORPNT> {p1,p2 }; List<ADORPNT> ps = pts 阅读全文

posted @ 2019-08-19 18:53 mol1995 阅读(123) 评论(0) 推荐(0)

任意字符串(包括空串)都包含空白字符串
摘要:string a=""; string b=""; string c=null; a.Contains(b) 为true; a.Contains(b??"xx")任为true,因为b??"xx"仍="". a.Contains(c??"")为true 为null的字符串不能出现在Contain的两边 阅读全文

posted @ 2019-08-15 09:34 mol1995 阅读(976) 评论(0) 推荐(0)

C#中的?操作符
摘要:一、1个?的用法 1. 表示可空数据类型,如 int? bool? 2. 跟在对象后,如该对象为null,则不会触发空值异常,且整个表达式返回null,如: string kk = "123"; volcalc=null; //volcalc为复合对象 kk=volcalc?.digVm?.outC 阅读全文

posted @ 2019-05-19 12:56 mol1995 阅读(1365) 评论(0) 推荐(0)

易混淆的Window窗体与父窗体之间位置关系
摘要:假设有abc三个窗体,a是最外层窗体,b是a的子窗体,c是b的子窗体 c.Top,c.Left,c.Bottom,c.Location等都是相对于B的左上角点的,子窗体的位置点都是相对于父窗体而言的,同样,b.Top,b.Left,b.Location等都是相对于A的左上角点的 所以,判断C的底端是 阅读全文

posted @ 2017-12-09 14:30 mol1995 阅读(162) 评论(0) 推荐(0)

界面主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序
摘要:主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序1、执行主窗体定义事件 new函数时,同时执行主窗体构造函数,默认就一个InitializeComponent函数,该函数中有各子窗体的new创建语句,因此2、执行主窗体定义new()函数时,如 FrmXXX = 阅读全文

posted @ 2017-12-08 11:39 mol1995 阅读(706) 评论(0) 推荐(0)

c#中{set;get;}使用逻辑
摘要:(先把结论提前)下面两种定义私有变量配合公有变量的方法都没有意义,除非有特殊的逻辑需要在set或get中,其它情况都等效于 public GM_Arc Arc {set;get;} //不进行初始化,允许该变量为null时使用。等同于public GM_Arc Arc;但是,前者VS能提示引用位置和 阅读全文

posted @ 2017-11-24 10:06 mol1995 阅读(948) 评论(0) 推荐(0)

C#中Struct与Class的区别
摘要:class和struct最本质的区别是class是引用类型,而struct是值类型,它们在内存中的分配情况有所区别。 什么是class? class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段、属性、方法、属性、构造函数、索引器、操作符等。在.NET中,所有的类都最终继承自 阅读全文

posted @ 2017-09-26 16:35 mol1995 阅读(195) 评论(0) 推荐(0)

一种简单的对象赋值方法,定义实例后以{}赋值,比传统方法更简洁
摘要:public class Rectangle { public Point TopLeft { get; set; } public Point BottomRight { get; set; } } static void CompareObjectInitMethods() { // 传统初始化 阅读全文

posted @ 2017-09-10 09:11 mol1995 阅读(208) 评论(0) 推荐(0)

系统类扩展方法,实现对所有类或某种类扩展自定义方法
摘要:扩展方法的格式: 1、必须把扩展方法写在静态类中 2、扩展方法的第一个参数必须加 "this" 修饰 例如,对所有object对象的扩展方法IsEmptyOrNull,判断对象是否为空,object o 前加了this,所有Object对象都可调用此方法 public static bool IsE 阅读全文

posted @ 2017-09-09 20:57 mol1995 阅读(231) 评论(0) 推荐(0)

26进制数与10进制数互转(字母和数字互换)
摘要:public class Twenty_six_Sys { private static string[] Level = {"A", "B", "C", "D", "E", "F", "G","H", "I", "G", "K", "L", "M", "N", "O", "P" 阅读全文

posted @ 2017-03-27 15:47 mol1995 阅读(1225) 评论(0) 推荐(0)

静态类与静态函数关系
摘要:1、静态类中只能包含静态方法 2、非静态类里可以包含静态方法 3、静态方法中,只能调用外部的静态方法和变量 也就是说,要调用一个静态方法,不一定它所在的类是静态类。 可以定义一个普通类,包括静态方法,也包括非静态方法,但该类中的静态方法不能调用该类中的普通方法。 例如,可以将某个窗体类(肯定是非静态 阅读全文

posted @ 2016-11-21 16:56 mol1995 阅读(227) 评论(0) 推荐(0)

2008.1.1 结束进程
摘要:C#结束程序的方法正常情况下不需要为C#的程序写结束语句的。 除非在特殊情情下才需要强制退出程序,像程序开了几个互不隶属的窗口,或是创建了几个线程。 但一般也不推荐强制终止,容易引发不可预测的错误。 Application.Exit()是比较彻底的终止; this.close()是关闭语句所在的窗口 阅读全文

posted @ 2016-10-15 18:40 mol1995 阅读(148) 评论(0) 推荐(0)

2007.1.1 string.Format
摘要:String.Format举例(C#) stringstr1 =string.Format("{0:N1}",56789); //result: 56,789.0 stringstr2 =string.Format("{0:N2}",56789); //result: 56,789.00 strin 阅读全文

posted @ 2016-10-15 18:39 mol1995 阅读(147) 评论(0) 推荐(0)

2016.1.22 利用LINQ实现DataSet内多张DataTable关联查询操作(目前未发现太大价值)
摘要:DataSet ds = new DataSet(); DataTable t1 = DBFactorySingleton.GetInstance().Factory.GetDataTable(sql_ndp).Copy(); t1.TableName = "t1"; DataTable t2 = 阅读全文

posted @ 2016-10-15 17:51 mol1995 阅读(286) 评论(0) 推荐(0)

2015.5.11 string与byte[]相互转换
摘要:string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); 反过来,byte[]转成string: string str = System.Text.Encoding.Default.GetS 阅读全文

posted @ 2016-10-15 17:29 mol1995 阅读(134) 评论(0) 推荐(0)

2015.3.31不使用debug/X86文件夹方式解决64/32位问题
摘要:传统方法:在解决方案-配置管理器-新建X86平台可以解决32位兼容问题,但是Debug目录下会多出X86文件夹。不方便 另一种方法:在项目名称-属性-生成-目标平台-x86也能解决问题,而且不出现X86文件夹,更好! 阅读全文

posted @ 2016-10-15 17:27 mol1995 阅读(142) 评论(0) 推荐(0)

导航