博客园  :: 首页  :: 新随笔  :: 联系 :: 管理
上一页 1 2 3 4 5 6 7 ··· 13 下一页

2011年4月16日

摘要: F1 Help F5 Refresh File List F6 Next Pane TAB Next Pane ENTER View INSERT Add/Create (file/project list) DELETE Delete ALT+BACKSPACE Undo ALT+ENTER Properties Dialog Box ALT+X Exit CTRL+A Add File CTRL+D Set Working Directory CTRL+G Get CTRL+F Show Differences CTRL+H Show History CTRL+I Check in th. 阅读全文

posted @ 2011-04-16 09:49 codingsilence 阅读(216) 评论(0) 推荐(0) 编辑

摘要: 简介回首以前,我到处寻找Splash Screen的例子,不过我找不到一个符合我的需求的例子。我需要一个简单的、容易复用的、可靠的、安全的——没有线程或子控件;并且,我希望它能够在启动的时候立即出现并停留在屏幕上,在必要的时候消失,当然你可以随时让它复现。我也看到有不少基于.NET下Win Form做的例子,而,这篇文章中,我将使用System.Runtime.InteropServices创建一个继承与控件类的最顶层窗口。我非常喜欢这个方案,因为,我发现它很容易定制。代码使用添加SplashScreen.cs到你的程序中,到你的程序的Main函数中,一般来说这个函数在Program.cs文件 阅读全文

posted @ 2011-04-16 09:41 codingsilence 阅读(2718) 评论(0) 推荐(0) 编辑

摘要: 现在的程序,越来越讲究UX了(用户体验),能否赢得用户的青睐,很多时候是由UX的高低来决定的.今天,我来为大家介绍一下,如何在WinForms下提高应用程序UX的一点研究:给你的程序加个启动动画.内容很初级,高手可以直接Next了.好,我们直接切入主题.大家知道,当我们使用Office或VS时,首先会显示一张好看的启动图片(或动画),等所有内容在后台加载完了,才显示出Office或VS的操作主界面.这样的做法,大家可谓是司空见惯了,但它是如何现实的呢?其实,现实起来也不难,主要的思路是这样的:先制作一个窗口,将背景设计为你的启动图片 在Main方法中,开两个线程:第一个线程,显示带有图片的窗口 阅读全文

posted @ 2011-04-16 09:33 codingsilence 阅读(316) 评论(0) 推荐(0) 编辑

摘要: private Point mouseOffset; //记录鼠标指针的坐标private bool isMouseDown = false; //记录鼠标按键是否按下/// <summary>/// 递归得到指定控件偏移量X值/// </summary>/// <param name="sender">指定的控件</param>/// <returns></returns>private int GetOffsetX(Control sender){ if (sender == this) { ret 阅读全文

posted @ 2011-04-16 09:05 codingsilence 阅读(440) 评论(1) 推荐(0) 编辑

摘要: 在我的项目中需要一个热键管理工具,于是搜索CodePlex,在上面找了一个工具:SystemHotKeys,这个工具有以下热键管理功能:1 注册全局热键 2 热键命名,可以使用名称将热键与命令关键 3 "双击"方式的快捷键 ,比如接连按下两次Ctrl+C但是这个工具还不能满足我的需求,于是在它的基础上进行了修改,修改内容如下:1 增加复合热键的支持,如Ctrl+E,Ctrl+L或Ctrl+E,L2 去掉"双击"快捷键3 增加快捷键状态提示事件,如果"按下Ctrl+E,等待按下第二个键"4 增加快捷键转储,恢复功能,在应用程窗口变为非活 阅读全文

posted @ 2011-04-16 08:37 codingsilence 阅读(443) 评论(0) 推荐(0) 编辑

2011年4月15日

摘要: private void Form1_Load(object sender, EventArgs e) { AutoCompleteStringCollection strings = new AutoCompleteStringCollection(); strings.Add("A1");//不区分大小写 strings.Add("A2"); strings.Add("Aas"); strings.Add("B1"); strings.Add("Beijing"); strings.Add( 阅读全文

posted @ 2011-04-15 08:42 codingsilence 阅读(249) 评论(0) 推荐(0) 编辑

2011年4月13日

摘要: C# Treeview控件用于权限操作 这几天试用了下vs2008,实现的功能是: 1.当选勾选的节点下有子节点,所有子结点跟随勾选结点的Checked状态改变. 2.当某结点选中,假如其存在父结点,则父结点也选中。父结点若还有父结点,则其父结点也选中。。以此类推。 3.当所有同级结点皆未选中,则父结点Checked=false CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><scriptlanguage="java 阅读全文

posted @ 2011-04-13 10:53 codingsilence 阅读(1380) 评论(0) 推荐(0) 编辑

摘要: /// <summary> /// TReeView操作的类 /// </summary> public class TreeViewOpt { /// <summary> /// 根据节点名称遍历树节点 /// </summary> /// <param name="NodeText">节点名称包含的关键字</param> /// <param name="tnParent">节点集合</param> /// <returns>查找到的第一个节点 阅读全文

posted @ 2011-04-13 10:51 codingsilence 阅读(208) 评论(0) 推荐(0) 编辑

2011年3月31日

摘要: 问题:KAM中有一个department,department有多个IATA ,如果要按照KAM的Name或者department的Name来查,则很简单 from KAM as kam where kam.Name="**" and kam.Department.Name="***" 但是如果是按照IATA的名字呢? from KAM as kam where kam.Name="**" and kam.Department.Name="***" and kam.Depatment.IATAList.IATACo 阅读全文

posted @ 2011-03-31 09:39 codingsilence 阅读(148) 评论(0) 推荐(0) 编辑

摘要: 使用ActiveRecord作为数据库持久层已经有一段时间,曾经发现这样一个现象,数据库中的一些Int,DateTime等字段被设置为了0,0001-01-01。期间我问技术总工,Hibernate在查询过程中会不会修改数据库?技术总工回答,绝对不可能!于是我以为是有同事在存入数据的时候没有初始化数据造成的。事实证明,这个我钦佩得五体投地的资深JAVA架构师错了。 答案是会!而且容易引起重大的BUG! 在一对多,多对多的映射使用中,为了防止取到过多的数据,我们会设置Lazy=True,延迟加载。在调用延迟加载的对象,都要加上Using(new SessionScope()).如下 CodeCo 阅读全文

posted @ 2011-03-31 09:38 codingsilence 阅读(307) 评论(0) 推荐(0) 编辑

摘要: 学习继承,纯属意外,数据库的设计者硬要把A,B,C三个完全不同的对象存在同一张表中,并振振有词说A,B,C三个对象的内容比较类似,都有Name,Address等属性,加一个Type标识就可以了。事后证明这个是数据库的一大败笔,因为这么项目中有D对象,D对象与A对象是一对一关系,与B对象是一对多关系,与C对象是多对多关系...... 这可苦了我了,按照一个表一个对象的思路,原来A,B,C作为一个对象 O,里面有个Type属性,当Type为1的时候为A,为2的时候为B,为3的时候为C。D对象中,几个属性:O(表示A),OList(表示B),OList2(表示C)。开发的过程中,开发人员都问我,D里 阅读全文

posted @ 2011-03-31 09:36 codingsilence 阅读(216) 评论(0) 推荐(0) 编辑

摘要: 根据数库的设计,有密切联系的对象的增加,删除,修改设置级联操作,在使用中会有很大的便利但是也有些需要注意的地方。之前的项目使用,为了避免不必要的麻烦,一律设置成了不级联操作。后面对象的使用时,很多地方多写了多余重复的代码。其实,在使用前根据对象的属性,设计好级联操作,能带来很大的便利。本文从多对多,和一对多两个方面,并针对数据库设计中主外键的属性来分析对象的级联。 由于学习Castle是从TerryLee的博文中开始,采用他老人家的习惯举例,以向他老人家致敬^_^1、一对多 假设一个博客有多个帖子,即一个Blog对应多个Post,权且称Blog为父对象,Post为子对象 一对多的级联有几种方. 阅读全文

posted @ 2011-03-31 09:35 codingsilence 阅读(213) 评论(0) 推荐(0) 编辑

摘要: 最近这个项目采用了我积极推荐的CASTLE ACTIVERECORD作为项目的持久层,项目实施过程中遇到了一些自己早期测试没有遇到的问题,加上其他的一些零零碎碎的问题,总结一下1、ACTIVE RECORD自带的代码生成器并不支持ORACLE。我的做法是把数据库设置到SQL SERVER中,再生成的2、如果ORACLE的主键是自增序列,则采用下面的写法CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->[PrimaryKey(Primar 阅读全文

posted @ 2011-03-31 09:34 codingsilence 阅读(269) 评论(0) 推荐(0) 编辑

摘要: 1.先在Domain中建一个实体类,如Mappublic class Map{private string _mapCreator;private int _mapRecords;public string MapCreator{get{return _mapCreator;}set{_mapCreator=value;}}public int MapRecords{get{return _mapRecords;}set{_mapRecords=value;}}public Map(string creator,int count){_mapCreator=creator;_mapRecord 阅读全文

posted @ 2011-03-31 09:30 codingsilence 阅读(172) 评论(0) 推荐(0) 编辑

摘要: 由于最近的要做的项目周期时间是在太短了,因此把 ActiveRecord给用上了。 结果用着用着问题就来了。者碰上配置多数据库怎么办啊,后来网上也找了一些资料。但是基本上都是千篇一律,真搞不懂那帮家伙那样配置能不能用啊。。。反正我折腾了一上午都没配置出来。 老是报错:“Couldnotobtaintypefromname'{0}',项目的类名”, 结果越想越不对劲,把源代码拿来研究研究,问题找到了:在 ActiveRecord 源码中,文件目录是这样的:/Castle/Castle-all/ActiveRecord/Castle.ActiveRecord/Framework/C 阅读全文

posted @ 2011-03-31 09:25 codingsilence 阅读(168) 评论(0) 推荐(0) 编辑

摘要: 当from中有多个表时,而select 中只需要一个表中的所有数据,不必像sql一样用*,只要把类名写出来就行,摸索出来的经验,记下,希望对大家有帮助.见下面查询,特别是加红部分. [DataObjectMethod(DataObjectMethodType.Select)] public static ZjcXueshenghuojiang[] List(int xuenian, int xueqi,long banjiId,long banjiStudentId) { //BaseBanjiStudent stu = new BaseBanjiStudent(); //stu.BanjiS 阅读全文

posted @ 2011-03-31 09:17 codingsilence 阅读(178) 评论(0) 推荐(0) 编辑

摘要: 有时候如果我们的配置信息是动态的获取,这种方式就会变得非常有用。示例 C# 代码:usingSystem;usingNUnit.Framework;usingtest;usingSystem.Reflection;usingCastle.ActiveRecord.Framework.Config;usingCastle.ActiveRecord;namespacetest._TestUnitCase{/**////<summary>///BlogTest的摘要说明。///</summary>[TestFixture]publicclassBlogTest{publicB 阅读全文

posted @ 2011-03-31 09:14 codingsilence 阅读(200) 评论(0) 推荐(0) 编辑

摘要: ActiveRecord 的多数据库配置基本沿袭了 NHibernate 的思想,只不过在配置文件结构上作了些调整。1. 采用继承方式,归纳使用同一数据库的类型。比如 A、B、C、D、E 中 A、B连接到数据库Test1,C、D连接到Test2,而E连接到缺省的Test,那么具体的代码就会是下面这种方式。public abstract class Test1Base : ActiveRecordBase{}public abstract class Test2Base : ActiveRecordBase{}[ActiveRecord("A")]public class A 阅读全文

posted @ 2011-03-31 09:12 codingsilence 阅读(1035) 评论(0) 推荐(0) 编辑

2011年3月30日

摘要: 1、执行 alter table BMDW add leaf varchar2(10); 报错:ORA-25150:不允许对区参数执行ALTERING -- Alter table alter table BMDW storage { next 128 } 2、修改如下 alter table BMDW MOVE storage ( next 128 ) ; -- Add/modify columns alter table BMDW add leaf varchar2(10); 阅读全文

posted @ 2011-03-30 16:04 codingsilence 阅读(449) 评论(0) 推荐(0) 编辑

摘要: 刚接触WPF,有两个概念不是很懂,现理解如下: 1:window和page谁包含谁的问题 一新建WPF应用程序,发现默认启动界面是一个window,将默认启动改为page,没有错误。但是如果在page中执行如下程序报错: this.content = new Window1(); 错误信息是:window是在属性结构的根目录。那么,我们可以理解为,window包含page,而不是反之。 2:登录界面(窗口跳转) 既然WPF的默认启动界面是一个窗口window,那么我也默认理解整个应用程序最上层最好是一个window(虽然全部是page也不会出错)。这大概是习惯使然,因为老的winform程序. 阅读全文

posted @ 2011-03-30 14:31 codingsilence 阅读(1762) 评论(0) 推荐(1) 编辑

2011年3月29日

摘要: 1. 先去oracle 下载一个叫ODAC1110720Xcopy.rar 的文件,解压, 里边有一个instantclient_11_1 文件夹, 11-1 是oracle 的版本号,2. 将 instantclient_11_1 文件夹放在 c:/windows/ 下 , 并修改系统环境变量 path=c:/windows/instantclient_11_1;3. 修改oracle 的数据连接字符串 <add key="Oracle_ConnectionString" value="Data Source=(DESCRIPTION=(ADDRESS_L 阅读全文

posted @ 2011-03-29 14:06 codingsilence 阅读(319) 评论(0) 推荐(0) 编辑

摘要: 一、NVelocity介绍 1.1 Velocity是什么 nVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。 当nVelocity 应用于web开发时,界面设计人员可以和.NET程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由.NET程序开发人员关注业务逻辑编码。nVelocity将.NET代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在aspx之外又提供了一种可选的方案 阅读全文

posted @ 2011-03-29 09:11 codingsilence 阅读(1160) 评论(0) 推荐(0) 编辑

摘要: using System;using System.Web;using System.IO;using NVelocity;using NVelocity.App;using NVelocity.Context;using NVelocity.Runtime;using Commons.Collections;using System.Text;namespace FoodunTemplateAction{ /// <summary> /// NVelocity模板工具类 VelocityHelper /// </summary> public class Veloci 阅读全文

posted @ 2011-03-29 09:07 codingsilence 阅读(985) 评论(1) 推荐(0) 编辑

摘要: 一、NVelocity介绍 1.1 Velocity是什么nVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。当nVelocity 应用于web开发时,界面设计人员可以和.NET程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由.NET程序开发人员关注业务逻辑编码。nVelocity将.NET代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在aspx之外又提供了一种可选的方案。n 阅读全文

posted @ 2011-03-29 09:06 codingsilence 阅读(280) 评论(0) 推荐(0) 编辑

摘要: 一、基本语法1、"#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;如:#if($info.imgs)<img src="$info.imgs" border=0>#else<img src="noPhoto.jpg">#end2、"$"用来标识一个对象(或理解为变量);如如:$i、$msg、$TagUtil.options(...)等。3、"{}"用来明确标 阅读全文

posted @ 2011-03-29 09:04 codingsilence 阅读(47195) 评论(0) 推荐(1) 编辑

2011年3月28日

摘要: 因为最初错误的理解了Contract与Service的关系,把每个业务定义了相应的Contract与Service并将对应的Service一一继承相应的Contract,因为在WCF每个host只能提供一个Service所以导致,当你的服务很多的时候你要定义N多个host看下面演示提供User(用户)和Order(订单)两个服务:开启多个host代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->ServiceHosthost1=newSe 阅读全文

posted @ 2011-03-28 15:42 codingsilence 阅读(287) 评论(0) 推荐(0) 编辑

摘要: POWERDESIGNER生成表名带有引号,如下:/*==============================================================*//* Table: "EPPD_B_BILL_INTERCALATE" *//*==============================================================*/create table "EPPD_B_BILL_INTERCALATE" ( MATERIAL_PRICE_ID VARCHAR2(32) not null, con 阅读全文

posted @ 2011-03-28 12:54 codingsilence 阅读(1483) 评论(0) 推荐(0) 编辑

2011年2月28日

摘要: 最近忙于系统的优化,同时也涉及到.net 线程池,关于.net 线程池的介绍很多,但在使用的过程中发现一些问题,和MSDN、网上介绍的并不一致:一、线程池的默认设置先看看微软官方的说法:maxIoThreads 默认值为 20。该属性的范围是从 5 到 100。maxWorkerThreads 默认值为 20。该属性的范围是从 5 到 100。minIoThreads 默认值为 1。minWorkerThreads 默认值为 1。requestQueueLimit 默认值为 5000。jeffer richer 说明.net 2.0 每CPU25个线程,同时不建议修改默认配置 ,而且网上很多人 阅读全文

posted @ 2011-02-28 21:12 codingsilence 阅读(292) 评论(0) 推荐(0) 编辑

摘要: 解释1、栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小解释2、存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护。而堆是无序的,他是一片不连续的内存域,有用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收。引用类型总是存放在堆中。值类型和指针总是放在它们被声明的地方。调用方法:系统先将一段编码(堆的首部地址)放到栈上,紧接着放置方法的参数。然后代码执行到方法时,查找栈中放该堆首部地址的所有参数, 阅读全文

posted @ 2011-02-28 21:05 codingsilence 阅读(21384) 评论(6) 推荐(12) 编辑

摘要: 表意清晰的命名规范是程序规划的核心,如果整个系统所有的命名都与其功能相适合,并可以让人“望文知意”,例如“Age”、“SetAge ()”,可大大提高系统的可维护性和健壮性,并可使系统关系清晰。反之,如果命名不能反应其含义,例如“v001”、“f002 ()”,那么将适得其反。说明常用的命名风格如下。(1)Pascal风格:包含一到多个单词,每一个单词第一个字母大写,其他字母小写,其余字母均小写。例如:CollegeStudent、HelloWorld等。(2)Camel风格:包含一到多个单词,第一个单词首字母小写,其余单词首字母大写,其他字母均小写。例如:name、gender、somePa 阅读全文

posted @ 2011-02-28 20:10 codingsilence 阅读(516) 评论(0) 推荐(1) 编辑

摘要: 1.定义Pascal大写—一种大小写形式,所有单词第一个字母大写,其他字母小写。Camel大写—一种大小写形式,,除了第一个单词,所有单词第一个字母大写,其他字母小写。2.规范1. 类的命名规范l 用名词或名词短语命名类。l 使用Pascal大写。l 减少类名中缩写的使用量。l 不要使用任何类前缀。l 不要使用带下划线的字符。下面是一些正确命名的类名的例子。public class FileStream {}public class Button {} 2.接口的命名规范:l 使用名词或名词短语,或者描述行为的形容词来命名接口。例如,IComponent(描述性名词),ICustomAttri 阅读全文

posted @ 2011-02-28 20:09 codingsilence 阅读(184) 评论(0) 推荐(0) 编辑

2011年2月23日

摘要: 在处理界面响应友好性的问题上,一般会把耗时的操作另起线程进行处理,从而不影响UI主线程的响应,关于此问题一般有如下两种处理方式1、处理逻辑在非主线程做处理,显示结果返回至主UI线程显示,这是用的比较多的一种处理方式2、如果强制在非UI线程操作界面显示的控件,将会抛出如下的异常信息:“线程间操作无效: 从不是创建控件“textBox1”的线程访问它。”为了可以让非UI线程也可以操作主界面的UI线程的控件,可以作如下的设置: public Form1() { //屏蔽跨线程改控件属性那个异常 CheckForIllegalCrossThreadCalls = false;其中CheckForIll 阅读全文

posted @ 2011-02-23 23:29 codingsilence 阅读(652) 评论(0) 推荐(0) 编辑

摘要: 写这篇之前,先简单介绍一下TCP、UDP协议,深的讲不出来,有不明白的请问我秘书Dawnh同学。 TCP(传输控制协议)是 TCP/IP 协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务。与IP协议相结合, TCP组成了因特网协议的核心。 UDP(用户数据报协议)是ISO参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP协议基本上是 IP 协议与上层协议的接口。UDP协议适用端口分辨运行在同一台设备上的多个应用程序。 C# 中,已将TCP,UDP,SMTP等协议封装为相应的类型库,提供了一系列方法供程序员进行操作. 阅读全文

posted @ 2011-02-23 22:28 codingsilence 阅读(256) 评论(0) 推荐(0) 编辑

2011年1月24日

摘要: ASP.NET Development Server(也称为 Cassini)是Visual Studio内置的web服务器,微软公布的有Cassini源代码,以前曾经利用Cassini的源代码制作了一个BS2CS的小程序,执行BS2CS.EXE,寻找并加载当前路径wwwroot目录到web网站,其作用就是把一个ASP.NET网站放在一个CS程序的窗体里面,实现把网站当做CS来开发。近期微软发布了IIS Express和Orchard,其中一些特点让我非常高兴,也许我可以抛弃原来的Cassini。IIS Express可以从磁盘上直接启动,也就意味着不必安装。而Orchard是一个不错的内容管 阅读全文

posted @ 2011-01-24 12:40 codingsilence 阅读(211) 评论(0) 推荐(0) 编辑

2011年1月16日

摘要: Dear Daughter: 亲爱的女儿: As we drove off from Columbia, I wanted to write a letter to you to tell you all that is on my mind。 当我们开车驶出哥伦比亚大学的时候,我想写一封信给你,告诉你盘旋在我脑中的想法。 First, I want to tell you how proud we are. Getting into Columbia is a real testament of what a great well-rounded student you are. Your. 阅读全文

posted @ 2011-01-16 23:17 codingsilence 阅读(206) 评论(0) 推荐(0) 编辑

2011年1月12日

摘要: string tmpFile = Path.GetTempFileName();string argument = string.Format(@" -S {0} -d {1} -i ""{2}"" -o ""{3}""", ServerName, DatabaseName, fileName, tmpFile);// append user/password if not use integrated securityif (!connection.IsIntegratedSecurity) 阅读全文

posted @ 2011-01-12 21:05 codingsilence 阅读(738) 评论(0) 推荐(0) 编辑

2011年1月7日

摘要: 总体介绍:WindowsMobile系统,开放了控制背景灯光的API,通过该API可以实现打开背景灯、关闭背景灯以及使屏幕闪烁等功能。开发语言:使用C#语言,在.net compact framework框架下实现。适用场景:1.当系统长时间运行是,为了节省硬件的电池,可以关闭背景灯,适软件在后台进行运行。2..net compact framework框架下,如果使用WebService进行数据交互,每次调用WebService时,北京灯都会自动打开,为了避免改现象的发生,可以在进行数据交互前关闭背景灯光,交互结束后再打开背景灯,特别适用于通过线程轮循方式实现PUSH技术。具体实现:1.封装 阅读全文

posted @ 2011-01-07 16:10 codingsilence 阅读(176) 评论(0) 推荐(0) 编辑

2011年1月6日

摘要: 概述在.NET中,可以轻松的通过try-catch块来捕获异常。为了防止在应用程序中出现未处理的异常,可以通过添加一个全局的异常处理函数,如果是多线程的处理,还必须考虑除了主线程之外的工作线程中的异常处理办法,这里用委托机制来实现。主线程的异常处理使用Application对象中的ThreadException属性设置一个delegate来捕获所有的未处理的主线程中出现的异常。注意这个全局异常处理程序,只能捕获到主线程中的异常,对于我们自己添加的工作线程、辅助线程的异常是捕获不到的。在应用程序入口添加全局异常处理: 1/// <summary> 2 /// 应用程序的主入口点。 3 阅读全文

posted @ 2011-01-06 22:03 codingsilence 阅读(143) 评论(0) 推荐(0) 编辑

摘要: 目 录 1 排版 62 注释 113 标识符命名 184 可读性 205 变量、结构 226 函数、过程 287 可测性 368 程序效率 409 质量保证 4410 代码编辑、编译、审查 5011 代码测试、维护 5212 宏 531 排版¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。¹1-2:相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规范。if (!valid_ni(ni)){ ... // program code}repssn_ind = ssn_data[index].repssn_ 阅读全文

posted @ 2011-01-06 21:39 codingsilence 阅读(225) 评论(0) 推荐(0) 编辑

2010年12月15日

摘要: .NET上控制台输出的实时截取(原文标题).NET上控制台输出的实时截取分两种不同的情况:截取子进程的输出和截取当前进程的输出。截取子进程的输出可以使用Process.StandardOutput属性取得一个StreamReader,并用它来读取输出。注意读取操作是阻塞的,可以使用异步方法调用或者Process.BeginOutputReadLine()来进行异步读取。例子如下:Process p = new Process();p.StartInfo.UseShellExecute = false; // 必须p.StartInfo.RedirectStandardOutput = true 阅读全文

posted @ 2010-12-15 18:12 codingsilence 阅读(896) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 13 下一页