随笔分类 -  C#

因为接触的多是Windows操作系统,也尝试着与时俱进,也选择Microsoft的配套工具之一C#来夯实一下基础。
摘要:引言如果你看过了 C#中的委托和事件2-1 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。为什么要使用事件而不是委托变量?在 C#中的委托和事件 中,我提出了两个为什么在类型中使用事件向外部提供方法注册,而不是直接使用委托变量的原因。主要是从封装性和易用性上去考虑,但是还漏掉了一点,事件应该由事件发布者触发,而不应该由客户端(客户程序)来触发。这句话是什么意思呢?请看下面的范例:NOTE:注意这里术语的变化,当我们 阅读全文
posted @ 2013-10-16 15:05 客栈老人
摘要:PDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间 阅读全文
posted @ 2013-10-16 15:02 客栈老人
摘要:术语表Iterator:枚举器(迭代器)如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的。这在C# 2.0中比 C# 1.1更容易实现一些。作为演示,我们先在 C# 1.1中为一个简单的集合添加枚举,然后我们修改这个范例,使用新的C#2.0 枚举构建方法。我们将以创建一个简单化的List Box作为开始,它将包含一个8字符串的数组和一个整型,这个整型用于记录数组中已经添加了多少字符串。构造函数将对数组进行初始化并使用传递进来的参数填充它。public ListBox(params string[] initialStrings 阅读全文
posted @ 2013-10-14 22:40 客栈老人
摘要:[译]C# 理解泛型PDF 浏览:http://www.tracefact.net/document/generics-in-csharp.pdf源码下载:http://www.tracefact.net/SourceCode/Generics-In-CSharp.rar出 处:http://www.ondotnet.com/pub/a/dotnet/2004/05/17/liberty.html术语表generics:泛型type-safe:类型安全collection: 集合compiler:编译器run time:程序运行时object: 对象.NET library:.Net类库val 阅读全文
posted @ 2013-10-14 13:22 客栈老人
摘要:代码风格没有正确与否,重要的是整齐划一,这是我拟的一份《项目代码风格要求》,供大家参考。PDF版下载:项目代码风格要求V1.0.pdf1. C# 代码风格要求1.1注释类型、属性、事件、方法、方法参数,根据需要添加注释。如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;否则需要添加注释。当添加注释时,添加方式如下图所示:1.2 类型(类、结构、委托、接口)、字段、属性、方法、事件的命名优先考虑英文,如果英文没有合适的单词描述,可以使用拼音,使用中文是不符合要求的。唯一可以使用中文的地方是枚举的枚举项,枚举项实际已经不属于本节标题的范畴了。这里只是放到一起说明,如下图所示: 阅读全文
posted @ 2013-10-14 12:33 客栈老人
摘要:在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .Net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下。 打印操作通常包括以下四个功能: 1 打印设置 设置打印机的一些参数,比如更改打印机驱动程序等; 2 页面设置 设置页面大小纸张类型等 3 打印预览 类似于word中的打印预览 4 打印实现打印功能的核心是PrintDocument类这个类属于System.Drawing.Printing名字空间这个类封装了当前的打印设置页面设置以及所有的与打印有关的事 阅读全文
posted @ 2013-10-13 23:43 客栈老人
摘要:c#.net 中如果想在主窗口A里点击打开新窗口B(因为要数据库操作,Bload需一小段时间)之前弹出带有滚动条等待子窗口C来提示用户没有死机,应该怎么做?我用多线程打开了c窗口,但是问题:1.C窗口会作为一个新窗口弹出,在任务栏上有显示,而不能作为A的子窗口弹出,我设置了mdiParent属性,但是会报错“交叉线程……”;2.等B窗口load完毕需要关闭C窗口,应怎么操作?请达人给予指导,谢谢!问题补充:1 , C_window.ShowInTaskbar=false;这样就不会再任务栏上显示2 , B窗口载入完毕线程结束的时候执行关闭c窗口就可以啦. 我试了试可以在任务栏上不显示,但是我想 阅读全文
posted @ 2013-10-13 23:36 客栈老人 阅读(2119) 评论(0) 推荐(0)
摘要:以下将窗体间的几种通信实现方式做一下罗列:首先新建一个窗体Form1,在其中放置一个Textbox、Button控件。再新建一个窗体Form2,其上放置一个Button控件。具体代码示例如下://Form1.cs 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows. 阅读全文
posted @ 2013-10-13 21:24 客栈老人 阅读(1754) 评论(0) 推荐(0)