暂时未有相关云产品技术能力~
暂无个人介绍
项目结束之后,有需要将winForm程序打包成.exe文件提供给用户。这里记录一下打包过程。
上传文件的时候,现在图片文件上传至缓存目录,返回链接,回显。在点击提交写入数据库的时候,将写入数据库的那个图片链接对应的图片移动到正式的图片目录下。然后写个定时任务,定期去清除缓存目录中的文件。这样就会避免垃圾文件的产生了~
加一个Loading的进度条。项目启动的时候,加载进度条,界面UI加载完毕,进度条消失。文末有资源,可下载。
记录一下常用的文件读写的方式:二进制读写、泛型读写、XML读写。
php导出csv文件的功能。要操作的文件特别大的时候,推荐使用csv。 导出csv的时候,需要用到一些php原生函数。
GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像、数学仿真等。 Graphics类是GDI+的核心,它提供将对象绘制到显式设备的方法。Graphics类封装了绘制直线、曲线、圆形、图像和文本的方法,是一切GDI+操作的基础类。在绘图之前,必须在指定的窗体上创建一个Graphics对象,才能调用Graphics类的方法画图。
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。事件是一种特殊的委托。 有四种表现形态:delegate、Action、Func、predicate 委托定义要和作为其参数的方法形式一样,也就是说,参数、返回值及其他都是相同
最近工作需要做一个鼠标可以拖拽移动图片的功能。写了几个基本功能,勉强能用。
一维数组转二维数组最重要的是下标计算。这里使用C#举例。
这篇日志记录下nginx配置https服务的过程。
第一种是PHP通过qq邮箱或者网易邮箱的SMTP服务器来实现邮件发送。 第二种是使用phpmailer来实现邮件发送。
Vue只是把前端封装成了一个框架,他跟服务器端是不发生关系的。也就是说,跟session是没有关系的。只是,他不能使用php标签或者smarty标签在HTML页面中使用session。
localstroage与sessionstroage是HTML5的新属性。 localStorage和sessionStorage操作方法都一样,我觉得,他俩是一个玩意。就是‘生命周期不一样’。
UEditor 的页面在 a.com 下,serverUrl指向域名在 b.com 域下。这个官方文档是有介绍的:跨域上传。 链接:http://fex.baidu.com/ueditor/#dev-crossdomain
在文章编辑的时候,使用ueditor上传图片加水印需要修改ueditor部分PHP的源码,我这里大概记录一下。
本篇内容记录了安装过程,共七步。
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。Ref型参数引入前必须赋值。 out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。 Out型参数引入前不需赋值,赋值也没用。
给大家分享一个自己写的函数:使用PHP生成mysql字典。
本篇内容记录了C++的命名规范、注释规范。
父类有了带参数的构造函数,子类的构造函数可以不和父类的构造函数一样,但是,如果你的父类定义了带参数的构造函数同时没有无参重载的情况下,那么在子类中,你必须对父类的带参数的构造进行赋值,也就是实参!
实现的方法也很简单 1:页面引用以下资源文件(均位于ueditor目录中) <script type="text/javascript" src="/ueditor/third-party/SyntaxHighlighter/shCore.js"></script> <link rel="stylesheet" type="text/css" href="/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css"> 2:增加如下js脚本使高亮生效: SyntaxHighlighter.all();
本篇内容记录了 命名惯例和规范、 ** 良好的编程习惯、** 注释 、 ** 异常处理
分享一个自用的PHP验证码类。
List类:表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。 IList接口:表示可按照索引单独访问的一组对象。
键盘事件分三种,KeyDown、KeyPress、KeyUp。执行的顺序就如我写的顺序相同。
三种解决方法: 1.在构造方法中设置 ControlStyles 的OptimizedDoubleBuffer 和AllPaintingInWmPaint为True,完全启用双缓冲。 2.设置CreateParams的ExStyle为ExStyle 为 0x02000000 (WS_EX_COMPOSITED) 3.这种方法不会加快绘制的过程。当发生绘制时,窗体只是停留在不可见的状态,当绘制完成后就会在屏幕上弹出
基类约束有两个重要的目的。 1:它允许在泛型类中使用有约束指定的基类成员。 2:确保只能使用支持指定基类或派生类的类型实例。
泛型( Generic ) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。可以理解为就是C++中的模板。
Convert.ToDouble与Double.Parse的区别:实际上Convert.ToDouble与 Double.Parse 较为类似,实际上 Convert.ToDouble内部调用了 Double.Parse 。
堆栈(Stack):代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。 SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。
List:泛型集合,List类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList 泛型接口。
集合是一组相互关联的对象,数组也可以看做是集合。集合中的对象称之为元素。
线程池是一种多线程的形式,其中的任务被添加到队列中,并在创建线程时自动启动。
死锁是指多个线程共享资源是,都占用同意部分资源,而且都在等待对方师范另一部分资源,从而导致程序停滞不前的情况
Mutex(互斥体): 排他性的使用共享资源称为线程间的互斥。 使用Mutex类要比使用monitor类消耗更多的系统资源,但他可以跨越多个应用程序,在多个应用程序间同步。
本篇内容记录了无关线程、相关线程、临界线程、互锁等
线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。
StringBuilder是由Char数组构成的。构建新的StringBuilder时能设置容量大小,当添加字符串,超过已分配的数组大小时,就会创建一个新的数组,此时容量会翻倍,旧的数据就会等待垃圾回收。 StringBuilder多数方法都是返回同一个StringBuilder对象,那么这个时候就可以,几个操作一起完成。
本篇内容记录了关于string的一些函数的用法。
本篇内容记录了StreamReader类的属性和方法、StreamWriter类的属性和方法等
本篇内容记录了FileStream类属性和方法。
本篇内容记录了文件类操作、文件夹操作、Directory类方法、Path类方法和字段、Environment获取电脑的相关属性方法。
窗体中的三个属性: Size:窗体大小(包括标题栏和边框) ClientSize:工作区大小(不包括标题栏和边框) AutoScrollMinSize:出现滚动条的最小尺寸
本篇内容记录了坐标变换的平移变换、旋转变换。
路径由System.Drawing.Drawing2D命名空间的GraphicsPath类实现。路径的紫图行可以是直线、弧、椭圆、矩形等几何图形。如果起点和终点闭合,则称之为闭合路径,否则称之为开放路径。
本篇内容记录了Windows绘图的基本概念、操作和清除刚刚绘制的画像等
本篇内容记录了自定义事件、事件继承。
本篇内容记录了comboBox下拉列表框属性、ListView 列表视图属性、ListView 列表视图事件、treeView树状视图属性。
本篇内容记录了listBox 、checkedlistbox、 imagelist的基本信息。
鼠标事件分为两种:EventArgs、MouseEventArgs。 键盘事件:KeyEventArgs、KeyPressEventArgs、KeyPress、KeyDown、KeyUp。