自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(229)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

转载 C# List<T>排序总结

1.对基础类型排序方法一:调用sort方法,如果需要降序,进行反转:List list = new List();list.Sort();// 升序排序list.Reverse();// 反转顺序方法二:使用lambda表达式,在前面加个负号就是降序了List list= new List(){5,1,22,11,4};list.S

2018-01-04 15:57:13 1124

转载 ZooKeeper典型应用场景一览

ZooKeeper典型应用场景一览数据发布与订阅(配置中心)、负载均衡、命名服务、分布式通知/协调、集群管理与Master选举、分布式锁、分布式队列

2017-11-20 11:44:18 280

转载 和各种诡异 Bug 打交道 13 年,我总结了 18 个经验

这些都是过去给我带来棘手 bug 的问题:1.事件顺序当处理事件时,问以下问题富有成效:事件是否可以以不同的顺序到达?如果没收到这些事件怎么办?如果事件在同一行出现两次怎么办?即使这通常不会发生,在系统的其他部分(或交互系统)中的bug也会导致它发生。2.处理太早这是上述“事件顺序”中的一个特殊情况,但是它已导致了一些棘手的bug,所以它自成一派。例如,如果信令信息

2017-11-15 13:14:02 354

转载 TFS统计编码行数语句

SELECT TeamProjectProjectNodeName 项目名称 ,checkedinbyname 开发人员 ,SUM([LinesAdded]) AS 代码添加行数 ,SUM([LinesModified]) AS 代码修改行数 ,SUM([LinesAdded]+[LinesModified]) AS 代码变动行数

2017-07-25 14:15:48 1301

原创 PowerDesigner 将Name中的字符COPY至为空的Comment中

Option Explicit ValidationMode = True InteractiveMode = im_BatchDim mdl ' the current model' get the current active model Set mdl = ActiveModel If (mdl

2017-07-04 18:01:45 359

转载 动态库和静态库

静态库动态库dll

2016-11-15 14:04:09 289

转载 常用的数据统计Sql 总结

1. 统计各个条件下的数据selectBatchId,sum(CardSum) 总金额,sum(case when Status=1 then CardSum else 0 end) as 已使用,sum(case when Status=2 then CardSum else 0 end) as 已冻结 from GiftCard group by BatchId2. 统计

2016-09-18 11:23:53 321

转载 Ubuntu 16.04 U盘制作

Select fileSelect the ISO file that you want to use in the Win32 Disk Imager window. Click on the symbol, and get the file selector (in the right bottom corner). The default is to show image (IM

2016-08-29 14:04:45 1858

转载 搜索引擎高级指令

1、双引号  把搜索词放在双引号中,表示完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。百度和谷歌都支持这个指令。  比如搜索:SEO方法图片  可以看出,返回的结果中不少页面出现关键词并不是完整的”SEO方法图片”,有的页面中“SEO”、“方法”、“图片”这三个词出现在不同的地方,中间有间隔,顺序也不相同。  把“SEO方法图片”放在双引号中再搜索:  可

2016-08-29 13:36:56 1136

转载 在Ubuntu中安装Redis

前言Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速。用Redis可以很轻松解决高并发的数据访问问题;做为时时监控信号处理也非常不错。目录Redis在Windows中安装Redis在Linux Ubuntu中安装通过命令�8C客户端访问Redis修改Redis的配置1. Redis在Windows

2016-08-26 23:48:27 1850

转载 常用的数据统计Sql 总结

1. 统计各个条件下的数据selectBatchId,sum(CardSum) 总金额,sum(case when Status=1 then CardSum else 0 end) as 已使用,sum(case when Status=2 then CardSum else 0 end) as 已冻结 from GiftCard group by BatchId2. 统计每日

2016-08-03 09:56:42 10731

转载 SQL Server判断对象是否存在

1 判断数据库是否存在Sql代码 if exists (select * from sys.databases where name = ’数据库名’)    drop database [数据库名]  if exists (select * from sys.databases where name = ’数据库名’)  drop database [数据库名]2

2016-03-02 11:26:21 310

转载 TFS2010 强制解除签入签出锁定

团队开发中,有时候同事离职了或者重装系统了,但签出的项目未签入,这时候这部分被他独占,其他人没法操作,而又不能在签出的工作区签入或者撤销,这时候就要用到强制撤销。方法一 步骤: 以下TFS服务器:【http://win2008server:8080/tfs/项目名称】(注意:这个路径是完整的路径) 在写命令的时候要特别注意空格,如果不清楚TFS服务器的话可以用 tf workspa

2015-12-23 10:49:25 1252

转载 一名交互设计师必备的知识架构

如果你也是一枚刚入门的交互设计师,是不是常有这样一种感觉:不知从何下手,闷头读了一大堆书、学了一大堆软件、画了一大堆图之后还是感觉心里不踏实,总害怕自己还缺点什么,恨不得要有本《交互设计学习大纲》就好了。出现这个问题有两个原因,一是交互设计师没有可视性强的产物,交互设计师的产物一般是线框图、流程图、信息架构图、说明文档等等,但这些东西既不如视觉设计稿华丽精美,也不如程序代码高贵冷艳,在外行

2015-12-21 11:30:35 526

转载 DataBinder.Eval和Container.DataItem(DataRowView)有什么区别

DataGrid控件,在ItemTemplate显示数据时,DataBinder.eval_r(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别? DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写,但是它使用的方式是通过Reflection等开销比较大

2015-07-30 10:18:10 663

转载 对比Angular/jQueryUI/Extjs:没有一个框架是万能的

Angular不能做什么?对比Angular/jQueryUI/Extjs 框架就好比兵器,你得明白你手里拿的是屠龙刀还是倚天剑,刀法主要是砍,剑法主要是刺。对于那些职业喷子和脑残粉,小僧送你们两个字:呵呵;同时祝你幸福,请点右上角。 首先要明白Angular不能做什么,或者Angular没有提供什么,然后再来看它能做什么,来看Angular与其它一些主流框架的对比。

2015-06-19 11:11:00 578

转载 关于OPV和IPV:脊髓灰质炎(小儿麻痹症)疫苗

先指出几个事实:美国2000年停止使用OPV; 英国2004年停止使用OPV; 在国内,OPV是免费的,属于国家免疫计划中的一类疫苗; 现在北京的防疫系统,只能在朝阳的十来家医院或防疫站打IPV,一针198块钱,一共要打3针。一些涉外医院也提供,价钱更贵就是。 1.一种病毒:脊髓灰质炎(小儿麻痹症) 一种病毒,叫做脊髓灰质炎病毒(Poliovir

2015-06-18 22:33:25 10126

转载 Effective C# Item32:尽可能实现小尺寸、高内聚的程序集

我们在划分程序集时,经常会犯的一个错误:在一个程序集中放入了太多的东西,导致程序集很难被重用。    一个好的程序集应该是“高内聚”的,所谓内聚,是指将程序集封装为一个有意义、有职责的单位,它一般可以用一句话简单的话来描述,例如.NET框架中的System.Collection程序集就为存储一组相关的对象提供了数据结构。我们不能这么说:MyApplication程序集提供了任何我们所需的功能,

2014-08-05 10:14:28 453

转载 Effective C# Item31:尽可能实现短小简洁的方法

我们推荐编写短小简洁的方法,而不是冗长复杂的方法,主要的原因在于.NET的JIT机制。    当使用C#代码编写的程序在运行时,需要经历两个步骤:1)C#编译器将我们编写的源代码编译为IL中间代码;2)CLR通过调用JIT编译器将IL代码转换成本地机器代码。这两个步骤会分摊在整个应用程序运行的过程中。CLR并不会再应用程序启动时对整个应用程序做JIT编译,而是以方法为单位进行JIT编译。这可以

2014-08-05 10:08:03 467

转载 Effective C# Item30:尽可能实现CLS兼容的程序集

CLS是一套针对编程语言的变成规范,.NET环境对语言没有特定的限定,只要是符合CLS规范的语言,我们就可以说它是和.NET兼容的语言。在实际的项目开发过程中,我们可以使用不同的语言,例如,当我们需要引入一些第三方产品的程序集时,我们不能保证程序集中使用的语言是和我们使用的编程语言是一致的,因此,确保程序集必须是CLS兼容的。    CLS兼容性实际上采用一种“最大公分母”的方式来实现互操作的

2014-08-05 10:06:13 491

转载 C# 3种定时器对比

功能描述

2014-08-04 09:01:13 946

转载 线程 线程池 线程同步 实例

线程:using System;using System.Collections.Generic;using System.Text;using System.Threading; namespace 线程Thread{ class Program { public class MyThread { priva

2014-07-31 13:23:50 453

转载 c#的ThreadPool使用笔记

摘要:系列文章,从一个基本的代码说起,逐步探索 ThreadPool 的奥妙。首先,看看线程池的样子:

2014-07-31 10:31:02 398

转载 解决winform中的panel重绘闪烁问题

利用winform开发时,可能都会遇到一个问题,就是在panel中不停的重绘图形时,图形会不停的闪烁。要解决这个办法只需要开启双缓冲即可,由于初学c#,理解的不是很深,所以不多做解释。以下代码亲测可以解决这个问题:首先创建一个自己的panel类:

2014-07-31 09:49:48 4792 2

转载 SharpZLib 使用方法

在做项目的时候需要将文件进行压缩和解压缩,于是就从http://www.icsharpcode.net下载了关于压缩和解压缩的源码,但是下载下来后,面对这么多的代码,一时不知如何下手。只好耐下心来,慢慢的研究,总算找到了门路。针对自己的需要改写了文件压缩和解压缩的两个类,分别为 ZipClass和UnZipClass。其中碰到了不少困难,就决定写出来压缩和解压的程序后,一定把源码贴出来共享,让首次

2014-07-30 12:30:51 606

转载 Nginx、LVS及HAProxy负载均衡软件的优缺点详解

Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站

2014-07-30 08:51:36 413

转载 Effective C# :创建二进制组件

二进制组件允许我们将各个功能分解后单独发布,.NET中将这种类型的二进制组件称作程序集,在共享逻辑、跨语言以及组件部署方面,程序集为我们提供了很多简化和便利。    程序集在.NET中充当了组件包的角色,每个程序集都可以独立的发布和升级,制约我们升级一个程序集的因素是“如何尽量减少程序集之间的耦合”。    当程序启动时,CLR加载器并不会加载所有被引用的程序集,而是之用当CLR需要某个程

2014-07-25 15:01:10 417

转载 Effective C# Item29:只有当新版基类导致问题时才考虑使用new修饰符

我们一般在类成员上使用new修饰符,来重新定义继承自基类的非虚成员,但是我们不建议这么做,因为重新定义非虚方法会导致含混不清的行为。    非虚方法是静态绑定的,编译器并不会根据对象的运行时类型来判断应该调用哪个方法;而虚函数使用的是动态绑定,编译器会根据对象的运行时类型来判断应该调用哪个方法。    避免使用new 修饰符来重新定义非虚方法,并不是说你应该将基类中的所有方法都设计成虚方法

2014-07-25 14:51:07 343

转载 Effective C# Item28:避免强制类型转换

转换操作为类之间引入了一层“可替换性”,“替换”意味着一个类的实例可以被替换为另一个类的实例。例如,我们在一个类层次结构中,在任何使用父类的地方,我们可以使用子类的实例进行替代,这是“多态”的作用。    当我们为类型定义了类型转换操作符后,我们实际上是在告诉编译器这些类型可以被当做目标类型来使用,这样的替换经常会导致一些很诡异的Bug,因为我们的类型可能并不是目标类型的完美替代品。   

2014-07-25 14:39:55 394

转载 Effective C# Item27:避免ICloneable接口

一般情况下,我们不建议针对类型实现ICloneable接口。因为如果一个类型支持ICloneable接口,那么该类型的所有派生类都必须实现它,而且类型中所有成员类型也都要实现ICloneable接口,或者有其他创建复制对象的机制,当我们设计的类型包含交织成网状的对象时,支持深复制会变得比较复杂。    复制操作分为浅复制和深复制两种,其中浅复制是指新对象包含所有成员变量的副本,如果成员变量为引

2014-07-25 14:31:59 393

转载 Effective C# Item26:使用IComarable和IComparer接口实现排序关系

.NET框架定义了两个接口来描述类型的排序关系:IComparable和IComparer,其中IComparable接口定义了类型的自然排序方式,IComparer则为类型提供了另外的排序方式。    我们来看下面的代码。 public struct Employee : IComparable { private string m_strName;

2014-07-25 14:24:43 516

转载 Effective C# Item25:尽可能将类型实现为可序列化的类型

持久化是类型的一个核心特性,有时我们需要通过不同的方式传输和创建同一个对象,例如需要通过网络传输对象,或者需要将对象信息存储到文本文件或者XML文件中,这时,如何能够保持对象的状态,并在将来使用时,可以准确的还原到原来的状态,是非常重要的。    .NET可以使用序列化的方式来持久化对象,我们在可能的情况下,应该将类型定义为可以序列化的。序列化时,我们可以使用Serializable特性。

2014-07-25 14:21:37 288

转载 Effective C# Item24:声明式编程优于命令式编程

声明式编程是一种更简单、更精练的描述软件程序行为的方式,它意味着可以使用声明、而非指令的方式来定义程序的行为。C#中大部分编程都是命令式编程,即通过编写方法来定义程序的行为。我们可以通过使用特性,来在C#中实现声明式编程,它更易于实现、阅读和维护。    .NET框架本身已经为我们提供了大量的特性,我们可以利用这些特性非常方便的实现声明式编程;当.NET框架提供的特性不能满足我们的需求时,我们

2014-07-25 14:06:41 613

转载 Effective C# Item23:避免返回内部类对象的引用

当我们将属性置为只读后,就可以认为调用者对该属性的值不可以进行更改了吗?答案是否定的。对于值类型来说,将其置为只读,确实可以让调用者不能够对其进行修改;但是对于引用类型来说,调用者还是可以调用引用对象的公有成员,包括那些可以修改属性状态的成员。    我们来看下面的代码。 public struct Employee { private string m_st

2014-07-25 14:02:26 432

转载 Effective C# Item22:使用事件定义外发接口

事件为类型定义了外发接口,C#的事件是建立在委托的基础上的,委托为事件处理器提供了类型安全的函数签名。    委托要比事件的使用范围广泛,我们可以把事件看做是一种经过了封装的委托,专门用于事件驱动模型。你可以在客户代码中直接调用委托来激发委托指向的函数,而事件不可以,你只能在服务端调用事件,在客户端调用事件是会引发编译错误的。我们来看下面的程序。 public class Event

2014-07-25 09:17:06 409

转载 Effective C# Item21:使用委托表达回调

回调用于为服务器和客户端之间提供异步的反馈,其中可能会涉及到多线程或者需要提供一个入口点用于同步更新,在C#中,我们使用委托来表达回调。    委托为我们提供了类型安全的回调定义,虽然大多数常见的委托应用都和事件相关,但是那并不是委托应用的全部场合。当类之间有通信的需要,并且我们期望一种比接口更加松耦合的机制时,委托就是最合适的选择。委托允许我们在运行时配置目标,并且可以通知多个对象,委托对象

2014-07-25 09:15:14 426

转载 Effective C# Item20:明辨接口实现和虚方法重写

接口实现和虚方法重写看上去很像,它们都可以对定义在另一个类型中的方法进行重新实现,但是,这两种方式有很大的区别。    我们来看下面的代码,首先定义一个接口。 public interface InterfaceA { void MethodA(); }    我们可以采取以下三种方式来实现上述接口InterfaceA。

2014-07-25 09:08:23 473

转载 Effective C# Item19:定义并实现接口优于继承类型

这个话题不仅仅是针对.NET的,在其他面向对象语言的环境中,例如Java,都会有接口和抽象类,对于究竟是选择接口还是抽象类,已经有了太多的讨论,包括设计模式中都有了一条设计原则:组合优于继承,虽然这条原则和我们要讨论话题没有太大联系,但是可以看出在这方面如何做出选择,并没有一个万能的解决方案,一般都要见招拆招,具体问题具体分析。   抽象类一般是作为一个类层次结构的顶端,它一般有两个用途:1)

2014-07-25 09:07:44 469

转载 Effective C# Item18:实现标准Dispose模式

如果一个类型中包含了非托管的资源,那么我们应该自己编写释放非托管资源的方法。.NET提供了一个标准的用于释放资源的模式,叫做Dispose模式,在这种模式中,类型实现IDisposable接口,并提供一个终结器。这样,正常流程下类型的使用者调用Dispose()方法来释放资源,如果用户忘记调用Dispose()方法, 那么类型的终结器会作为最后的保障来释放对象的非托管资源。    在Dispo

2014-07-25 09:05:54 405

转载 Effective C# Item17:尽量减少装箱和拆箱

装箱和拆箱存在的意义:值类型是数据的容器,它存储在堆栈上,不具备多态性,而.NET框架在整个对象层次的设计中,使用System.Object作为所有类型的基类,但是Obejct是引用类型,而作为值类型的基类System.ValueType,是从System.Object派生出来的,这就产生了矛盾,装箱和拆箱就是为了解决这两种类型之间的差异。    装箱会将一个值类型放入一个未具名类型(unty

2014-07-25 09:03:31 414

RDM(Redis Desktop Manager)2021.10

RDM(Redis Desktop Manager)2021.10

2023-09-01

redis-desktop-manager-2019.4.0.exe

Redis Desktop Manager (aka RDM) — offers you an easy-to-use GUI to access your Redis databases and perform some basic operations: View keys as a tree CRUD keys Analyse memory usage for entire DB or for selected namespace in tree-view (redis-server >= 4.0 is required) List connected clients, Pub/Sub channels and Slow log commands Execute commands via shell Redis Desktop Manager allows to perform bulk operations which simplifies developer daily routines: Copy data between databases (copy data from production env to dev env for debugging or migrate your project to another cloud provider) Import data from RDB files - you can easily split data from large rdb files to multiple smaller redis-servers or import only subset of data Set TTL for multiple keys Delete keys matching glob-pattern

2019-12-30

C#插件构架实战

C#插件构架实战 Visual Studio 2010打开 .NET Framework

2013-03-06

Nginx v1.3.13 开发版

Nginx v1.3.13 开发版 反向代理 Web服务器

2013-02-26

最新 memcached v1.4.4 X64

最新 memcached v1.4.4 X64

2013-02-21

最新Memcached 1.4.4 32位版本

最新Memcached 1.4.4 32位版本

2013-02-21

MemCacheD Manager 管理工具

MemCacheD Manager 管理工具 可配置Memcached

2013-02-21

memcached v1.2.6 Windows 稳定版

memcached v1.2.6 Windows 稳定版

2013-02-21

Office专用表格

Office专用表格,

2012-03-10

WP7数据库操作范例

Windows Phone (Mango) 数据库范例

2011-10-24

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除