- 博客(302)
- 资源 (67)
- 收藏
- 关注
转载 网络通信socket连接数上限
转载自http://blog.csdn.net/tgxallen/article/details/54947523http://www.cppblog.com/aa19870406/archive/2012/07/15/183595.htmlsocket accept()返回的socket描述符的端口和listen描述符端口是一样的吗?as you know,一个s
2017-09-21 10:38:01 9219
原创 图像轮廓的提取
对图像边缘提取,常见的方式是先对图片进行灰度处理,然后再利用图像梯度算法提取出边框。我们先来看效果图 经过处理后的前后对比,可以看到,图形的轮廓已经大致提取了。现在来看实现的代码using System;using System.Collections.Generic;using System.Drawing;using System.IO;using System.Lin
2017-09-15 11:57:19 13489 8
原创 C# 基础类型的快速转换
在反射赋值时,数据来源可能是一个object,而目标类型可能是int、string、byte等各种基础类型,那如果要将数据转换成目标类型要怎么办?常见的做法是int.parse($"{source}");float.parse($"{source}");.....这样的做法自然是可以的,但是由于来源source是object,而目标类型虽然都是基础类型,但是基础类型却有很多,难道要针对
2017-08-07 17:59:04 407
转载 十大编程算法助程序员走上高手之路
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策
2017-07-28 11:01:19 393
原创 椭圆的曲线模拟
圆的模拟只要使用正多边形就可以实现,主要代码如下 private void TestCirlce(Graphics g) { int n = 36; var x0 = 500f; var y0 = 400f; var r = 50f; List list =
2017-07-21 17:30:43 1436
原创 覆盖父类方法的new和override关键字
new和override都可以覆盖父类的方法,但两者又有所区别。子类使用new覆盖父类方法后,是独立于父类的方法。子类使用override覆盖父类的方法后,只是在调用时不再调用父类方法而调用子类方法。我们来看一段代码 public class Parent { public void T1() { Debug.Wr
2017-07-21 09:48:40 2153
原创 BackgroundWorker异步更新界面
BackgroundWorker类似于线程,但又不太一样,因为线程不可以直接更新界面,而BackgroundWorker可以。代码如下 private void buttonTest_Click(object sender, EventArgs e) { BackgroundWorker worker = new BackgroundWorker();
2017-07-21 09:26:21 1778
原创 小程序开发系列(八)利用SQL实现access_token的自动通知
在ms sql服务器中,利用维护计划,可以自动执行作业。如果我们将access_token的更新定义为作业,在间隔若时间进行更新,那么理论上,SQL服务器中就实现了access_token的自动更新。按着这样的思路,第1步要解决的就是SQL的http请求。我们来看实现代码CREATE PROCEDURE [dbo].[UpdateAccessToken] --更新访问票据ASBEGIN
2017-07-01 17:29:20 2066
原创 漫水填充(泛洪填充、油漆桶)的C#实现(解决堆溢出问题)
漫水填充也叫泛洪填充,是画图软件中的油漆桶功能,但在运用中,远不止于此,比如构造一个矩阵数据,需要检测边界,在边界的内外填入不同的数据。油漆桶是对图形的快速填充,将图象以位图数据的形式来看,其实也是一个矩阵数据或者说是二维数组,所以我们如果以数字作为矩阵数据,那么只需检测里面的数据即可。然后将数据再绘制成图像,那就是油漆桶的功能。为了保存数据,我们定义了一个数字矩阵,并在矩阵中实现相应的填充方法,
2017-06-22 11:11:47 2716 3
原创 钉钉开发系列(十三)SVN机器人通知
在《钉钉开发系列-机器人》中已经介绍了钉钉机器人的创建与通知,那SVN提交时是否也可以自动发出通知呢?我们来思考一下原理,钉钉机器人的通知,本质上就是调用一个URL,然后POST数据,如果SVN中能够调起该URL并POST,那么理论上就应可以的。现在我们来开始实践。我们用的是VisualSVN-Server作为SVN的服务器,SVN客户端用TortoiseSVN。在VisualSVN-Serv
2017-06-14 17:19:21 3861 1
原创 小程序开发系列(七)事件传参
在触发事件后,有时需要有些额外的数据,JS的写法是直接以参数的形式传递。而小程序是react模式的,使用data触发状态变化而刷新界面,绑定的事件里,绑定的是函数的名称,参数无法像一般编码的方式直接传入,那要怎么办?小程序提供了一种方式,即daa-xxx,其中data-是标识事件触发时会带上这个参数,xxx是参数名。比如按钮绑定了query事件,需要传入一个产品的编号no作为参数,那我们在wx
2017-06-12 11:33:20 6124
转载 探讨SQL Server并发处理存在就更新七种解决方案
探讨SQL Server并发处理存在就更新七种解决方案前言本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案。探讨存在就更新七种方案首先我们来创建测试表IF OBJECT_ID('Test') IS NO
2017-06-01 08:54:37 1769
原创 事件通知实现界面间的数据交互
不同界面间的数据交互,常用到的方式是委托。对于简单的业务逻辑,有的可以直接弹窗,在弹窗关闭之后更新处理。但当数据涉及到的界面是多个的时候,可能就会不好处理了。特别是当开发不断深入,直接更新就会显得越来越无力。那有没有一种方式可以处理呢?我们可以通过事件注册与通知的方式来处理。为了方便实现,我们设计了一个简单的接口,代码如下 /// /// 事件通知 /// publ
2017-05-24 11:58:06 568
原创 小程序开发系列(六)获取群信息
小程序最近发布了新功能,转发到群中的页面,再点击的时候可以获取群信息,比如群ID,那要如何实现呢?1.在页面中开启“转发”功能代码如下 onLoad: function () { wx.showShareMenu({ withShareTicket: true }); },2.在页面中设置“转发”参数 //转发 onShareAppMessa
2017-05-10 13:40:20 1768
转载 IL指令详细
IL指令详细 名称说明Add将两个值相加并将结果推送到计算堆栈上。Add.Ovf将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。Add.Ovf.Un将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。And计算两个值的按位“与
2017-05-04 17:28:31 1588
原创 C#闭包函数
在JS中,函数内部可以自由的定义函数,而且只在该函数内有效,也就是闭包。在C#中也类似的用法,可以在函数内部中定义函数,请看代码 class Program { static void Main(string[] args) { Test(); void Test() {
2017-05-02 08:55:34 1616
转载 LINQ的连接扩展(左连、右连、全连等)
Some years ago, I read an article by C. L. Moffatt (link) where he explained, in a very clear and concise way, the types of joins in SQL and the idea of writing a similar article for LinQ has been g
2017-04-25 13:39:49 3035
原创 小程序开发系列(四)九宫格另一种实现
在《小程序开发系列(二)九宫格》中实现了一种九宫的排布方法,现在提供另一种实现,代码如下 {{item.name}} 界面代码中使用for循环的方式来展开,然后使用view来包裹,再将要包裹的内容放到内部,因为九宫格常常用作首页的功能块索引,所以内部增加了na
2017-04-21 14:18:14 17915 7
原创 C#判断线段是否相交
线段是否相交,一种是从几何上就是判断两个线段有没有交点,还有一种是通过向量叉乘(也就是向量积)来判断。因为向量叉乘的结果是一个垂直于原来两个向量的新向量,可以简单的理解为垂直于原来两向量所在平面的向量。我们来看图 /// <summary> /// 线段是否相交 /// </summary> /// <p...
2017-04-20 17:14:17 5847 5
转载 基于C#和JS的阻止重定向攻击
There are different types of attacks that exist in web programming, like SQL Injection Attack, Cross Site Scripting Attack(XSS), Open Redirection Attack etc., and we need to take care of these attacks
2017-04-20 10:28:49 1251
转载 设计模式之状态模式
状态模式的介绍:(重点就在这句)状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式的结构几乎是一样的,但是他们的目的,本质却完全不一样。状态模式的行为是平行的,不可替换的策略模式的行为是独立的,可以相互替换的用一句话来表述,状态模式把对象的行为封装在不同的状态类中,每一个状态对象(状态类的实例)都有一个共同的抽象状态基类。状态模式的意图是让一个对象在
2017-04-20 09:31:52 349
原创 矩阵变换
在一些算法中需要用到矩阵,自然就需要用到矩阵的一些操作,比如行变换、列变换、最简式、求矩阵的秩等,下面是实现的代码public class Matrix { #region 属性 /// /// 行数 /// public int RowCount { get {
2017-04-19 10:06:07 686
原创 C#图像中心缩放、移动及文字旋转、镜像
C#中使用Graphics可以很方便的绘图,在绘完图后,往往需要对图进行缩放和移动。缩放时,将鼠标当前的位置作为缩放的中心来缩放,看效果图中心缩放的核心在于计算图形新的原点,请看代码 public partial class Form1 : Form { #region 内部变量 private Graphics _g = null;
2017-04-18 16:07:47 10574 12
原创 计算直线感应区
计算一条直线在指定的平行距离和端点距离的感应矩形区 /// /// 计算P1P2直线的感应矩形区 /// /// /// /// 平行间距 /// 端点间距 /// public PointF[] CalculateInductionRect(PointF
2017-04-01 15:29:51 411
原创 Nuget服务的搭建-打包-上传-删除
为了便于公共库的内部复用,我们可以架设自己的nuget服务。首先创建一个Asp.net的空项目NugetServer,其次使用nuget安装nuget.server包,如下图添加了nuget.server后,直接编译然后发布到IIS下,一个简单的nugetServer就搭建成功了。但是为了能更方便的操作,还需要加一些简单的功能,比如nuget包的上传和删除。在上传nuget包之前,
2017-03-31 16:04:51 5151 6
原创 钉钉开发系列(十二)机器人
钉钉的每个群都可以建若干个机器人,有默认的比如github,也可以自定义。我们使用自定义,建立自己的机器人,然后得到一串的URL,只要向这个URL进行POST请求后,就能将消息通知到对应的群中。机器人的创建可以参照官方的文档。发送通知的代码如下 private string WEB_HOOK = "https://oapi.dingtalk.com/robot/send?access_to
2017-03-09 11:23:13 14355 2
转载 配置文件的读写
System.ConfigurationManager类用于对配置文件的读取。其具有的成员如下:一、AppSettings AppSetting是最简单的配置节,读写非常简单。名称说明AppSettings获取当前应用程序默认配置的 AppSettingsSection 数据ConnectionStrings获取当前应用程序默认配
2017-03-02 11:55:51 431
转载 四种读取配置信息的方式
This article will demonstrate how we can get/read the configuration setting from Web.Config or App.Config in C#. There are different ways to set the values inside the configuration file and read their
2017-03-02 08:54:01 598
原创 Vue中v-for的数据分组
使用Vue.js可以很方便的实现数据的绑定和更新,有时需要对一个一维数组进行分组以方便显示,循环可以直接使用v-for,那分组呢?这里需要用到vue的computed特性,将数据动态计算分组。代码如下
2017-03-01 11:22:57 12685
原创 Ajax上传文件至MVC的controller
在前端与后端交互,ajax是最常用的方式,而后台的响应也有很多方式,在asp.net中有一般处理程序和MVC的Controller响应的方式。在使用controller来响应请求时,可以通过路由配置来定位到具体的方法,这样代码清晰,逻辑分明,但前端传到后端的参数一般是通过函数的参数来接收的,而对于文件这样较大的数据,不太方便接收,虽然有类似HttpPostedFileBase的类作为参数,但使用a
2017-03-01 09:48:07 6209
原创 vue-cli 脚手架总结
> vue-cli 的脚手架项目模板有browserify 和 webpack , 现在自己在用的是webpack , 官网给出了两个模板: webpack-simple 和 webpack 两种。两种的区别在于webpack-simple 没有包括Eslint 检查功能等等功能,普通项目基本用webpack-simple 就足够了. 搭建官方项目模板步骤: 1、npm
2017-02-28 15:37:46 946
原创 常见排序算法的C#实现
排序算法常见的有直接排序、冒泡排序、快速排序、基数排序、归并排序等,下面是实现的代码,仅供参考。 #region DirectSort /// /// 直接排序. /// 第一次从R[0]~R[n-1]中选取最小值,与R[0]交换, /// 第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,....,
2017-02-21 16:59:49 478
转载 Understanding ref And out With C# 7
‘ref’ & ‘out’ keywords are very popular & useful in C# and some more enhancement has been done for ref & out in C# 7. I am going to explain all the basic concepts & usage of ‘ref’ and ‘out’ keywords a
2017-02-21 09:05:35 680
原创 给枚举值增加扩展数据
一般的每个枚举值对应着一个值, 而有时一个枚举值又具有其他的对应值或者需要有额外的扩展数据,这时我们怎么办?一种简单的方案是,可以定义一个以枚举值为KEY的字典,然后在Value中填入相应的值。当这个对应的值是固化的,那是不是一定要字典存储呢?是否可以在定义枚举的时候就进行定义呢?答案是有的。.Net中有一种特别的类Attribute,继承自Attribute的类可以在枚举上直接添加相应的数据
2017-02-15 16:00:52 6540
转载 数据库分库分表
一、 基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个服务器上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(server)上。
2017-02-15 14:13:16 2279
原创 小程序开发系列(三)数据交互与渲染
微信小程序的api中提供了网络交互的api,我们只要调用即可和后端进行数据交互,该api为wx.request.,具体代码如下。//list.js//获取应用实例var app = getApp()Page({ data: { list:[], hiddenLoading: true, url: '' }, loadList: function...
2017-01-16 16:12:59 15535
原创 小程序开发系列(二)九宫格
小程序是长在微信上的,是移动端的界面,为了能够更方便的使用,我们常常希望使用九宫格界面的方式作为导航,那要如何实现呢?基于一个简单的思考,九宫格就是三行三列,如果把行作为一个单位,再将每一行分成三列,那是不是就可以了?我们实践一下。首先来考虑九宫格数据的生成,每一个格子需要有一个图标、一个标题、一个便于跳转的路由,那天现在我们有九个页面,所以定义一个一维数组即可。为了更好的进行后续的配置,
2017-01-16 15:45:32 16809 9
原创 小程序开发系列(一)结构组成
在申请了小程序的appid之后,可以通过官方的《简易教程》创建hello world的页面,然后直接在【项目】中【预览】,生成二维码,再用微信扫描即可。微信上看到hello world的页面后,说明项目的流程已经走通了。现在我们回过头来看看,其结构是如何组成的。我们展开pages->index目录,看到如下图index目录下有index.js、index.json、index.wx
2017-01-16 15:04:39 2285 2
转载 MSSQL Extension For Visual Studio Code
IntroductionVisual Studio Code is a graphical code editor for Linux, macOS and Windows that supports various extensions. Personally, I think in current scenarios, Visual Studio Code is the best co
2017-01-12 09:00:22 2260 1
AspNetVueElementUI.zip(含图标扩展)
2019-05-10
AspNetVueElementUI(含组件注册)
2019-05-10
AspNetVueElementUI
2019-05-06
WinForm内嵌Unity3D并实现交互
2015-11-17
WinForm嵌入Unity3D并实现交互
2015-11-17
json转换c#实体类
2015-01-14
NDK开发的简单实例(JNI及Android的C组件实现)
2014-03-24
Android之动态库生成并打包到APK中(Windows下)
2014-03-19
Ant脚本打包Android程序的demo 多渠道及第三方JAR打包
2014-03-17
Ant脚本打包Android程序的demo(含打包第三方jar)
2014-03-14
Linux下以C构建WEB服务同时响应XHR(XMLHttpRequest)请求
2014-01-28
CCI所需的libz3.dll、Microsoft.Z3.dll、Microsoft.Z3V3.dll等的DLL安装包
2014-01-23
C#的COM事件在C++和JAVA中触发和响应的实现
2013-12-13
.NET4利用MemoryMappedFile实现跨进程多个可执行程序之间的通信
2013-11-13
谷歌插件开发实例(CSDN快速登陆)
2013-10-29
VM清理工具
2013-09-14
C#开发Android应用实践(英文版)
2013-08-07
C#HTTP代理的实现之注册表实现
2013-07-29
C#开发的Telnet模拟工具(基于SOCKET通信,可以直接按SMTP/POP3/IMAP通信协议操作)
2013-07-25
HTML5摄像头播放视频和截图
2013-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人