08 2024 档案
摘要:1.适配器模式:把一个类适配到原有的接口上,可以组合 可以继承 一.继承的方式: class RedisHelperInhert : RedisHelper, IHelper { public void Add<T>() { base.AddRedis<T>(); } public void Del
阅读全文
摘要:1.单例模式:关注于对象的创建。分为懒汉式和饿汉式。 懒汉式:调用方法的时候才创建; class Singleton { private Singleton() //1.私有构造方法 { Console.WriteLine("构造方法被创建"); } private static volatile
阅读全文
摘要:1.CLR:公共语言运行时,就是IL(中间语言)的运行环境;安装.net Framewrok的时会安装CLR 2.堆栈内存分配: CLR进行内存的分配 值类型分配在栈中,变量和值都是在线程栈中(结构体是输出值类型,结构体默认继承system.valuetype,所以不能继承其他类了,结构体不能有无参
阅读全文
摘要:1.控件的分类:主要要6大类 一.布局控件:可以容纳多个控件或者嵌套其他布局控件,用于在UI上组织和排列控件。Grid、StackPanel、DockPanel等都属于此类,他们拥有共同的父类Panel 二.内容控件:只能容纳一个其他控件或者布局控件作为他的内容。Window、Button等都属于此
阅读全文
摘要:1.单一职责原则 /// <summary> /// 一个类只负责一件事 /// 扩展升级,减少修改,直接增加类 /// 方便代码重用 /// 简单-稳定-强大 /// /// 方法层面:方法多个分支,还可能扩展变化,最后拆分成多个方法 /// 类:接受输入--数据验证--逻辑计算--数据库操作--
阅读全文
摘要:1.x:Name的作用 告诉编译器,为标签处理为这个标签生成对应实例外,还要为实例声明一个引用变量,变量名就是x:Name的值;如果xaml标签所对应对象存在Name属性,也会想值赋值给Name属性;示例如下: <StackPanel> <TextBox x:Name="textBox" Margi
阅读全文
摘要:1.Array:底层数据结构都是数组; { //Array //读取快、增删慢 Console.WriteLine("***********Array*********"); int[] intArray = new int[3]; intArray[0] = 123; string[] strin
阅读全文
摘要:1.线程中的异常处理 一般线程里面不允许出现异常,需要自己处理好,最好在线程里加个try catch, #region 异常处理 //线程里面的异常是被吞掉了,因为已经脱离了try 的范围了, WaitAll 抓到多线程里面全部的异常 //线程里面不允许出现异常,自己处理好,最好在线程里加个try
阅读全文
摘要:1.Task的三种启动方式 Task.Run(() => this.DoSomethingLong("btnTask_Click")); TaskFactory taskFactory = Task.Factory; taskFactory.StartNew(() => DoSomethingLon
阅读全文
摘要:1.线程创建和启动:需要传一个无参且无返回值的委托,然后Start启动 ThreadStart threadStart = () => Console.WriteLine("btnThreads_Click"); Thread thread = new Thread(threadStart); th
阅读全文
摘要:1.可通过委托的BinginInvoke进行调用: /// <summary> /// 异步方法 /// 1.同步方法卡界面,主线程忙于计算 /// 异步多线程方法不卡界面,主线程完事了,计算任务交给子线程在做; /// 运用:提升用户体验; /// /// 2.同步方法慢,只有一个线程干活 ///
阅读全文
摘要:三种算法,调用如下: class Program { static void Main(string[] args) { //MD5 一共32位,不能解密,且不可逆 //字符串相同,结果就一定相同 mds不能解密 //针对字符串进行MD5 Console.WriteLine(MD5Encrypt.E
阅读全文
摘要:1.表达式目录树和委托的类比: 表达式目录树 是一种数据结构、是一种语法树,可以被我们解析: 2.表示式目录树的使用场景:把一个对象中的数据赋值到另一个对象当中: 实现对象值赋值: 一.反射: 二.序列化器: 三.使用表达式目录树 4.使用泛型缓存+表达式目录树 调用如下: 5.Expression
阅读全文
摘要:1.Lambda表达式:左边是参数列表, 右边是方法体(实际就是一个方法)匿名方法 2.匿名类: 3.扩展方法: 4.Linq原理: 如下所示: 5.yield关键字使用说明: 6.系统中的Where关键字,就是委托类型的泛型封装成通用代码,扩展方法,以及使用yield关键字延迟访问; 系统中的Se
阅读全文
摘要:1.判断文件夹是否存在 2.文件的数据写入 3.文件内容的读取 4.文件的复制,移动,删除 5.log日志的记录 6.三种序列化器:
阅读全文
摘要:主程序框架介绍: 1.数据库名要和类名一样,数据库字符串可加配置项: 使用如下: 2.如果数据库中设置int类型,则类中属性要加?, 同时使用反射设置值的时候需要加个null判断: 3.如果数据库的表名以tb_为前缀,则可以直接使用sql语句进行传入,例如 select * from tb_User
阅读全文
摘要:1.同一个UI可以有不同的实现 如上图所示,可以存在以下两种不通的实现: 实现一: 实现二: 2.对对象属性赋值: 两种语法:使用字符串进行简单赋值;使用属性元素进行复杂赋值; 一.简单赋值: 二.使用属性元素赋值: 3.简化XAML得技巧 精简后如下: 4.对于复杂的绘图和动画制作,可以使用Ble
阅读全文
摘要:1.特性的定义:特性就是一个类,必须直接或者间接继承Attribute 特性本身也会被修饰可以用在哪个地方: 如果特性本身的修饰为All : [AttributeUsage(AttributeTargets.All,AllowMultiple =true)] ,则都可修饰 2.特性的访问:特性本身是
阅读全文