All Posts (292) 292


高效程序猿之(一)VS2010快速生成代码模板

一只程序猿的生产效率很重要。生成效率高了,老板喜欢你,妹子崇拜你,你也可以给自己节省很多时间。 加班的一般都是新手程序猿,除了对语言和技术不熟悉,工具也是很影响生成效率的因素。我们知道,猿和其他动物最大的区别在于,猿会使用工具。所以这一系列我将介绍一下如何用好手头的工具来帮助我们提高效率。 今天我们来看看如何在Visual Studio 2010中用内置的模板快速生成代码片段。 代码模板就是预先定义好的一个代码片段。VS中,我们只要输入模板的名称,然后连按两下TAB,VS就可以给我们把代码片段补充完整。 下面列出的这些都是VS2010的预置代码片段 流程控制语句估计大家都知道,这是最常用的“两下tab”: 关键词 生成 for for(int i = 0; i foreach foreach (...

Visual Studio 模板

LINQ to List泛型的几种简单查询

最近比较喜欢LINQ,真是碉堡了。下面写了个例子演示一下LINQ对List的操作,包括排序、where条件、选部分数据等查询。最近偷懒,不写注释了,大家自己看一下就明白了~ 测试用的BLL和Model public class TestBLL { public List GetList() { return new List() { new TestModel(){ Id=1, Name="RYWE", Content="IOJADJ", Posttime=DateTime.Now.AddHours(1) }, new TestModel(){ Id=2, Name="JGFA", Content="CAFYRE", Posttime=DateTime.Now.AddHours...

LINQ List 泛型

TinyMCE syntaxhl插入代码后换行的修改

上次搞了个整合insert code的TinyMCE编辑器,非常好用。但有一个缺点:每次插入代码后,光标都会停留在pre标记里面,打回车出不来,必须编辑HTML,在pre后面加个换行,然后才能回到可视化界面里继续编辑博客。如果博客里要插入的代码片段很多,就会非常不爽。所以今天给它做了个小修改。 打开plugins\syntaxhl\js\dialog.js 定位到41行,找到标记。这是预格式化标签的结尾标记。所以只要在它后面插入一个段落标记,即可让光标跳出我们插入的代码片段。插件的作者在41行后加了个bug注释,所以不敢贸然写在的后面,所以我们换一行,把拼接上。 现在我们插入代码后,光标就不会卡在pre里面了~OH YEAH! 有图有真相:...

InsertCode syntaxhl TinyMCE

C#数据结构之顺序栈

继续发很久以前的那个系列。。。今天是顺序栈。。 接口如下: public interface IStack { void Clear(); void Push(T item); T Pop(); T GetTop(); } SqStack类: public class SqStack : IStack { private int _Maxsize; private T[] _Data; private int _Top; public T this[int index] { get { return _Data[index]; } set {...

C# Stack 数据结构 顺序栈

LINQ to XML CRUD,并且封装为DAL方法

LINQ非常牛逼,操作数据库和集合对象非常方便,已经得到了非常广泛的应用。好处我不多说了。今天来给大家看看LINQ对XML的增删改查操作,并且封装为DAL类,方便在多层结构的应用程序中使用。以我网站的友情链接模块为例: XML文件的结构如下: 1 XNA Develop http://www.xnadevelop.com/ 1 2 BlogNT 开源.NET博客 http://www.blognt.com/ 2  和以往写ORM一样,我们首先要把对数据的描述抽象为model: public sealed class FriendLink { private int _id; private string _title; priva...

CRUD DAL LINQ XML

几种常用的代码重构手法

最近看了Martin Fowler的著作《Refactoring: Improving the Design of Existing Code》收获颇大。书上的例子都是Java写的,其实我们同样可以运用在其他语言中,现在做.NET开发的话,用的最多的就是Visual Studio,它自带的重构功能可以很方便的整理代码。 重构的好处不多叙述了,大家都明白。书上论述的非常详细,我挑选几种最常用的重构方法,并用C#语言做示例,帮助大家了解必要的重构手法。另外,我也会附上一些自己平时在编程中常用的重构片段,但未必是100%正确或最好的。 1.Extract Method (提取函数) 样例代码: public void PrintOwing(double amount) { PrintBanner(); // print details Console.WriteLine("...

C# Coding Refactor

UEditor1.1.7开发版ASP.NET图片上传代码

以前在UEditor群里经常看到人家问图片上传怎么搞,其实很简单,UEditor已经自带了一个例子了,任何一个合格的程序员都可以写成别的语言。问ASP.NET的人居多,估计都是学生,看不懂php的代码,当然也没办法自己写.NET版了。今天我尝试了下最新的1.1.7开发版,它的图片上传功能已经和1.1.6不一样了,现在用的是Flash多图片上传,当然,后台还是要有服务器端程序支持的。截至目前,网上还没有针对1.1.7图片上传的文献,我只能自己写了一个,目前测试下来没什么问题,所以把代码发上来分享给大家。首先,打开VisualStudio,在ueditor\server\upload\net下建立一个空的ASP.NET页面,叫做up.aspx,然后把它的前台代码删光,只留一句:这是为了保证上传成功后Response.Write()出来的东西不会受到无用代码的影响。(以前手工做AJAX的时候就是...

ASP.NET UEditor

兼容IE和Firefox的复制地址栏函数

网上找到的,经测试有效。IE9,Firefox8下没问题。 /* *Ie && Firefox CopyToClipBoard * */ function copyToClipBoard() { var txt = window.location.toString(); //txt += document.title; if(window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.setData("Text",txt); }else if(navigator.userAgent.indexOf("Opera") != -1) { window.location =...

Firefox IE JavaScript

解决Global.asax中Session_Start不执行的问题

不少人用Global.asax做网站计数器,我也是,但自从上次调试URL重写和Session冲突的问题之后(参见这篇文章),突然发现计数器不动了。研究一番发现,是web.config中的设置导致Session_Start不执行。原先是这样写的: 其实只要把HtmlSession改成Session就可以修复这个问题: 这样既可以解决URL重写和Session冲突的问题,又不会引起Global.asax中Session_Start不执行~目前还没有发现额外的问题~...

Global.asax Session Session_Start

ASP.NET List泛型分页代码

2011.11.13修正: 1. 改正页数计算方法,以前的计算公式遇到整除就会多一页 2. 重发关键代码,以前因为编辑器的原因,部分代码会被过滤 3. 新增“转到[]页”功能 我们以前做ASP.NET网站,通常是把DataSet绑定到显示控件上,再用各种手段进行分页,比如PagedDataSource。然而,如果你是从业务层取数据,通常是一个List,这个时候就不能用以往的方法分页了。 一种办法是用ObjectDataSource,绑定GridView、ListView就可以分页,但如果遇到DataList或Repeater,就得自己写分页了。下面是我昨天写的List泛型分页Demo,有图有真相: 下面发代码: List泛型分页通用类: /// /// 泛型分页类 /// /// 类型 public class ListPager : List {...

ASP.NET List 泛型 Paging