编程基础
文章平均质量分 56
阳大爷
努力成为大牛
展开
-
【设计模式】代理模式
Proxy代理类使用:原创 2023-02-07 09:59:43 · 315 阅读 · 0 评论 -
【设计模式】桥接模式
电脑抽象类computer(需要带有brand属性所以不使用接口)具体品牌实现苹果apple、联想lenovo继承自brand。如此的好处是将两个维度结合起来,增加一个维度的类型变得很简单。具体的电脑类型类笔记本、台式机、平板继承自computer。原创 2023-02-01 15:35:15 · 117 阅读 · 0 评论 -
【设计模式】抽象工厂
华为工厂,小米工厂(继承自抽象产品工厂接口)华为路由器,小米路由器(继承自路由器接口)抽象产品工厂接口(包含两个产品的对象输出)华为手机,小米手机(继承自手机接口)原创 2023-01-31 14:06:39 · 140 阅读 · 0 评论 -
【设计模式】策略模式
设计模式原创 2022-10-07 09:55:46 · 223 阅读 · 0 评论 -
【设计模式】装饰模式
设计模式 装饰模式原创 2022-10-06 17:12:45 · 323 阅读 · 0 评论 -
【设计模式】适配器模式
适配器模式原创 2022-10-06 16:10:27 · 466 阅读 · 0 评论 -
【设计模式】建造者模式
设计模式 建造者模式 KFC原创 2022-10-06 09:02:45 · 306 阅读 · 0 评论 -
【设计模式】工厂方法模式
return "奥迪行驶";return "奔驰行驶";原创 2022-09-04 15:08:08 · 134 阅读 · 0 评论 -
【设计模式】简单工厂模式
本处以实现加减乘除来作为例子演示下简单工厂模式的运用。/// 实现加减乘除运算的方法。原创 2022-08-23 09:32:56 · 119 阅读 · 0 评论 -
c#中webservice的调用
/获取用于写入请求数据的Stream对象。//把参数数据写入请求数据流。二.wsdl(利用wsdl获取cs文件再生成dll文件然后调用)--获取wsdl文件。原创 2022-08-20 08:49:35 · 233 阅读 · 0 评论 -
EF的扩展
entityframework作为一个orm框架的确很不错,个人使用上也很舒服,但是其本身存在一些问题如下:1.删除、更新等操作很麻烦,默认都需要查询出记录再修改2.批量操作不方便对应的可以添加一些第三方dll,来弥补1.EntityFramework.Extended 可以直接对数据进行更新或删除db.Users.Where(x => x.ID == 2).Update(b => new User { UserName = "ss" });db.Users.Where(原创 2022-06-30 16:29:50 · 397 阅读 · 0 评论 -
小知识点汇总
Application.Exit();Process ps = new Process();ps.StartInfo.FileName = Application.ExecutablePath;ps.Start();原创 2022-05-16 09:14:24 · 657 阅读 · 0 评论 -
EF中查询分页的实现
using(xxEntity db=new xxEntity ()){var query=db.table.where(x=>x.ID>0);int PageSize=20;//单页显示条数int TotalCount=query.Count();//数据总数int PageCount=(TotalCount*1.0)/PageSize;//页数return query.OrderBy(x=>x.ID).Skip((PageCount-1)*PageSize).Ta原创 2022-05-11 10:49:49 · 413 阅读 · 0 评论 -
委托的个人理解
后台:public delegate void DelegateGotBarcode(string barcode);//定义委托类型public event DelegateGotBarcode GotBarcode;//定义委托类型的变量串口DataReceive事件中使用如下if(GotBarcode!=null){ GotBarcode(barcode);}前台:bs.GotBarcode += new DelegateGotBarcode(bs_Got...原创 2022-04-18 09:31:45 · 116 阅读 · 0 评论 -
async、await与task
task是开启一个新的线程去做你需要做的事情,后面的代码会直接运行,这样可以防止线程阻塞private void button1_Click(object sender, EventArgs e) { Task.Run(()=> { Thread.Sleep(5000); Invoke(new Action(()=> { label1.Text =...原创 2022-04-18 09:21:41 · 285 阅读 · 0 评论 -
ini配置文件操作
1.封装ini操作类public class IniClass { public string inipath = System.Windows.Forms.Application.StartupPath + "\\config.ini"; [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, ...原创 2022-02-11 08:39:20 · 547 阅读 · 0 评论 -
文本和excel操作
/// <summary> /// 读取excel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { ...原创 2022-02-11 08:30:05 · 131 阅读 · 0 评论 -
linq的学习
LINQ(Language Integrated Query )语言集成查询,拥有易用、不容易出错、精简等优点分类LINQ to Object主要负责对象的查询 对关系数据的查询 LINQ to Entity如EF(Entity Framework) LINQ to XML写法1.类似SQL语法的查询语句int[] nums={1,2,4,5,6,7};//数据源Var list=from a in nums Where a%2==0 Orderby a descending Se原创 2022-02-09 10:32:55 · 484 阅读 · 0 评论 -
异步编程task的使用
Task t = new Task(() =>{需要执行的代码});t.Start();开启一个线程去执行需要执行的代码,后面的代码会继续执行原创 2022-02-09 08:44:14 · 267 阅读 · 0 评论 -
自定义类型实现排序(继承Comparable)
首先自定义如下的类型ProductStockModel,需要注意的是必须继承IComparable<ProductStockModel>才能实现排序功能,并且需要在定义中实现CompareTo方法 public class ProductStockModel : IComparable<ProductStockModel> { public string brand { get; set; } public string name...原创 2022-02-09 08:05:02 · 173 阅读 · 0 评论 -
EmguCV在vs中的配置 vs2010+emgucv3.0
1.下载安装emgucv2.添加环境变量path中内容3.添加bin文件夹中的基础dll原创 2020-06-12 16:35:42 · 181 阅读 · 0 评论 -
【EntityFrame使用】数据库常用curd方式
一.插入数据LicenceCabEntities db = new LicenceCabEntities(); Log log = db.Logs.CreateObject(); log.Action = action; log.File = mediaPath; log.Info = info; log.User = user; log.Time = Dat...原创 2020-06-01 14:39:39 · 191 阅读 · 0 评论 -
小知识汇总
一.窗口边框处理1.关闭按钮无效 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = MessageBox.Show("你确定要关闭吗!", "提示信息", MessageBoxButtons.OKCancel, Message原创 2016-12-31 14:08:56 · 234 阅读 · 0 评论 -
c#中sqlserver数据库事务处理
private void btn_Click(object sender, System.EventArgs e) { string conn = ConfigurationSettings.AppSettings["connectstring"]; SqlConnection cnn = new SqlConnection(c原创 2016-06-06 12:07:41 · 1437 阅读 · 0 评论 -
c#窗体程序中datagridview使用总结
本次只讨论控件的数据绑定第一种用法:dataGridView1.DataSource = new BindingList(ds);其中dg是一个类名,ds是该类的一个集合,例如: public class dg { public string id { get; set; } public string name { get; set原创 2016-01-13 13:58:20 · 3463 阅读 · 1 评论 -
c#中Invoke方法
invoke方法的初衷是为了解决在某个非某个控件创建的线程中刷新该控件可能会引发异常的问题。说的可能比较拗口,举个例子:主线程中存在一个文本控件,在一个子线程中要改变该文本的值,此时会有可能引发异常。为了避免该问题,需要在子线程中使用invoke方法来封装刷新文本内容的函数。Invoke 或者 BeginInvoke 去调用,两者的区别就是Invoke 会导致工作线程等待,而BeginIn原创 2015-10-15 09:21:00 · 31051 阅读 · 0 评论 -
c#中使用轻量级数据库sqlite开发总结
首先简单说明下含义,sqlite数据库是一种轻量级的数据库,主要特点是免安装、免配置、简单小巧,在程序中的开发基本和sql数据库一致。准备工具:system.data.sqlite.dll和sqlite-shell-win32-x86-3081101,前者用来在程序中调用,后者其实就是一个环境,安装后将路径加入path变量以便于在cmd中使用。代码示例:需要引用上述dll。原创 2015-09-10 16:12:31 · 4055 阅读 · 1 评论 -
窗口传值方法(socket多窗口共用)
在一次项目中需要用到socket通信,而且是串口服务器中使用,也就是说本质还是串口通信,只是我们在代码中完全作为socket通信来编写。切入正题,由于要在两个页面中都去访问同一个串口服务器的端口,而且还会再次返回第一个窗口(主窗口),因此socket的使用就要特别小心,本来是想分别在自己窗口new一个连接,但是会有关闭释放的问题,不关闭的话又会存在阻塞占用等情况,所以最好的办法就是把第一个窗口也就原创 2015-10-30 09:08:28 · 3071 阅读 · 0 评论 -
byte数组本质以及其与其他进制的转换
目前工作使用c#,由于和硬件打交道必然要使用串口通信等内容,而其中一定会使用byte数组用于发送数据(其实字符串也可以),研究了几天觉得有必要记录下来。首先,byte的本质是啥?其实就是一个8位的二进制数字,也就是说表示从0-255的一个数字,所以byte数组中的数据可以是各种数字,例如下例:byte[] byteArrary = { 0x01, 0x02, 0x03, 34 };,但是如原创 2015-09-08 09:07:15 · 1233 阅读 · 0 评论 -
字节、位之间的概念混淆
字 word 字节 byte 位 bit 字长是指字的长度1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit) 一个字的字长为16 一个字节的字长是8bps 是 bits per second 的简称。一般数据机及网络通讯的传输速率都是以「bps」为单位。如56Kbps、100.0Mbps 等等。Bps即是转载 2015-07-10 15:42:02 · 478 阅读 · 0 评论 -
c#中加解密文本(包含中文)
加密常使用的包括md5和sha1加密,算法如下,利用c#自带的函数,调用命名空间using System.Security.Cryptography;//MD5加密public string Encrypt_MD5(string str) { StringBuilder sb = new StringBuilder();原创 2017-01-20 16:53:45 · 1359 阅读 · 0 评论 -
一天一个知识点-结构体
结构是一种值类型数据,用于将相关的一系列数据进行组织和管理,c#中使用struct关键字定义结构namespace structDemo{//定义结构public struct SHuman{public string Name;public string Tel;public int Age;public string Sex;}cla原创 2017-02-27 08:20:49 · 367 阅读 · 0 评论 -
一天一个知识点-枚举
首先说明为何引入枚举类型,我们在一些情况下使用类似性别的数据时,直接使用汉字不太合适,因此考虑使用数字来代替,例如1表示男2表示女0表示未指定,但是这样不形象,而且会带来一个大问题,某些时候会有人将该值设定为出这三个数字以外的数字例如3或者4,那样就没有意义了.示例:public enum ESex:int{Male=1,Female=2,Unknow=0}使用时如下:ESex原创 2017-02-27 08:53:37 · 274 阅读 · 0 评论 -
c#中xml数据和对象的相互转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Data; using System.Xml; using System.Xml.Serialization; /// &...转载 2019-04-02 19:21:29 · 3095 阅读 · 0 评论 -
visual assist
下载以后解压缩,首先安装原版。然后(只针对VS2010),将压缩包内的 VA_X.dll 复制到以下文件夹内,覆盖原文件。 WinXP系统: %USERPROFILE%\Local Settings\Application Data\Microsoft\VisualStudio\10.0\Extensions\Whole Tomato Software\Visual Assist X\10.6.1...原创 2018-09-22 12:12:57 · 441 阅读 · 0 评论 -
JAVA中的类
final使用final声明的类不能被继承使用final声明的方法不能被覆盖使用final声明的变量不能被修改抽象类abstract含有抽象方法的类称为抽象类抽象类不能被实例化抽象方法只需要声明不需要实现,因此抽象类的抽象方法必须在其子类(不为抽象类)中重写实现...原创 2018-05-22 08:36:59 · 107 阅读 · 0 评论 -
thinkphp中打印出sql语句
$Model=M('tablename');$Model->add($data);echo $Model->_sql();以上是返回该表执行的最后一条语句 echo $Model->getDbError();以上是返回该表执行发生错误的情况,前提是有错误(判断执行的返回值是否为false)注:mysql中数据库表在设计时必须给个初值或者是允许为空 ...原创 2018-02-10 16:35:06 · 11872 阅读 · 0 评论 -
c#类的相关知识
一.类的继承1.子类默认只继承基类的无参数构造函数,如果基类中没有无参数的构造函数则必须在子类中创建一个2.密封类不允许被继承sealed3.在子类中定义与基类同名方法时,使用new来隐藏基类成员new public void Move(){}如果需要同时使用基类和子类该成员时,如下base.Move()this.Move()4.类中虚成员使用virtual修饰,在...原创 2017-09-20 07:45:10 · 414 阅读 · 0 评论 -
C#调用带参存储过程
1.存储过程如下: create procedure GetNameById ( @strUserId varchar(10),--输入参数 @strUserName varchar(10) output --输出参数 ) as select @strUserName=UserName from User where UserId=@strUserId原创 2017-04-15 09:48:54 · 1110 阅读 · 0 评论 -
WIN7环境下在IIS中配置c#编写的webservice
1.打开vs,选择新建项目,并且点击空web硬要程序后点击确认2.右键项目,选择添加新项3.选择web服务4.右键项目,点击发布,按图配置后点击发布,选择的路径下就会出现文件5.发布文件6.打开IIS,在默认网站右键点击添加虚拟目录7.如图配置后,点击连接为8.点击特定用户,输入电脑用户账号密码9.点击原创 2017-04-01 13:16:39 · 516 阅读 · 0 评论