自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MR_abc的C#编程之道专栏

C#编程之道 | 畅所欲言C#编程 | C#与您有约

  • 博客(19)
  • 收藏
  • 关注

原创 《C#编程之道》 之 使用正则表达式分解字符串

<br />正则表达式在实际开发程序时经常用来处理一些数据格式,比如要使用正则表达式分解一个字符串,可以使用下面的代码:<br />//定义要分解的字符串<br />string str = "14:08:30 192.168.1.1 明日科技 14:08:40 192.168.0.1 编程词典 ";<br />//定义要按指定格式进行分解的正则表达式<br />Regex myRegex = new Regex(@"(?<time>(d|:)+)s" + @"(?<ip>(d|.)+)s" + @"(?<

2010-10-22 19:55:00 1571 3

原创 《C#编程之道》 之 VS 2008中的“设计”视图打不开

<br />推荐下载:《C#编程词典》体验版,免费享用最全的编程资源<br /><br />新建一个网站项目,单击“设计”按钮,VS 2008出现假死状态,解决办法是:<br />(1)将VS 2008安装包WCUWebDesignerCoreWebDesignerCore.exe提取并重新安装;<br />(2)将C:/Program Files/Common Files/Microsoft Shared/OFFICE12/Office Setup Controller路径下的Setup.exe文件更名或

2010-09-27 18:30:00 1597 5

原创 《C#编程之道》 之 如何获取汉字的拼音首字母

<br />应用程序中经常需要用到汉字的拼音简码,下面介绍如何使用C#代码获得汉字的拼音首字母,代码如下:<br />private string Chinese(string str)<br />{<br />    if (str.CompareTo("吖") < 0)<br />    {<br />        string s = str.Substring(0, 1).ToUpper();<br />        if (char.IsNumber(s, 0))<br />        {

2010-09-14 18:27:00 1459 4

转载 APM 的三个聚集技巧——轮询聚集技巧(转)

<br />轮询聚集技巧在读取本地文件或做其它操作时,实际上将操作请求加入到Windows设备驱动程序的队列中,而Windows的设备驱动程序知道如何与正确的硬件设备通信,就这样,硬件接管了该操作,也就不需要任何线程来执行任何操作,但是应用程序的线程会等待操作系统完成信息的通知,那么本线程会处在一个While循环里面,直到接收到信息通知后While循环得到满足才会停止循环(上一个文章讲的是等待直至完成聚集技巧,等待直至完成技巧会挂起线程,所以有可能会使主线程挂起,而导致主程序长时间没有响应,而轮询聚集技巧不

2010-09-11 08:43:00 947

原创 《C#编程之道》 之 如何为自己的代码自动添加版权信息

<br />现在大多数公司都规定程序员在程序文件的头部加上版权信息,这样每个人写的文件都可以区分开来,如果某个文件出现问题就可以快速的找到文件的创建人,用最短的时间来解决问题。有些人使用复制和粘贴的方式,这样既浪费时间,效果又不是很好,下面介绍一种简便的为自己的代码添加版权信息的方式。<br />1、在visual studio 2008的安装路径下找到“[盘符]:Program FilesMicrosoft Visual Studio 9.0Common7IDEItemTemplatesCacheCSha

2010-09-09 19:01:00 1311 1

转载 微软中间语言—MSIL(转载)

在.Net框架中,公共语言基础结构使用公共语言规范来绑定不同的语言。通过要求不同的语言至少要实现公共类型系统(CTS)包含在公共语言规范中的部分,公共语言基础结构允许不同的语言使用.Net框架。因此在.Net框架中,所有的语言(C#,VB.Net,Effil.Net等)最后都被转换为了一种通用语言:微软中间语言(MSIL)。MSIL是将.Net代码转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。当用户编译一个.Net程序时,编译器将源代码翻译成一组可以有效地转换为本

2010-09-09 09:32:00 2233 1

转载 APM 的三个聚集技巧——直至完成聚集技巧(转)

<br />        直至完成技巧在读取本地文件或做其它操作时,实际上将操作请求加入到Windows设备驱动程序的队列中,而Windows的设备驱动程序知道如何与正确的硬件设备通信,就这样,硬件接管了该操作,也就不需要任何线程来执行任何操作,但是应用程序的线程会等待操作系统完成信息的通知,那么本线程也会处于等待状态,直到接收到信息通知后,线程才会继续执行。<br />例:<br />using System;<br />using System.IO;<br />using System.Thread

2010-09-07 22:25:00 857

原创 《C#编程之道》 之 如何跨线程调用Windows窗体控件

<br />推荐下载:《C#编程词典》体验版,免费享用最全的编程资源<br /> <br />    在开发具有线程的应用程序时,有时会通过子线程实现Windows窗体,以及控件的操作,比如:在对文件进行复制时,为了使用户可以更好的观察到文件的复制情况,可以在指定的Windows窗体上显示一个进度条,为了避免文件复制与进度条的同时操作所带来的机器假死状态,可以用子线程来完成文件复制与进度条跟踪操作,下面以简单的例子在子线程中操作窗体中的TextBox控件。代码如下:<br /><br />using Sys

2010-09-06 18:16:00 4865 5

原创 《C#编程之道》 之 在线程委托中实现参数的传递

<br />推荐下载:《C#编程词典》体验版,免费享用最全的编程资源<br />      在用线程委托对Windows窗体控件进行操作时,有时需要在线程委托中以参数的形式判断当前线程的执行方式,下面以简单的例子在子线程中以两种方式操作窗体中的TextBox控件。代码如下: <br />using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<b

2010-09-02 18:21:00 986 2

原创 C# 使用APM执行受I/O限制的异步操作(转)

<br />为了从FileStream对象中同步地读取字节,我们可以调用它的Read方法,该方法的原型如下所示:<br />Public Int32 Read(Byte[] array , Int32 offset , Int32 count)<br />为了从文件中异步地读取字节,可以调用FileStream的BeginRead方法:<br />IAsyncResult   BeginRead(Byte[] array, Int32 offset , Int32 numBytes , AsyncCallb

2010-09-01 22:43:00 1191

原创 C# serilaizable简介(转)

使用序列化,首先要引用命名空间using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡。只要您

2010-09-01 22:01:00 805 1

原创 《C#编程之道》 之 如何将前台线程改为后台线程

<br />推荐下载:《C#编程词典》体验版,免费享用最全的编程资源<br /> <br />启动了多个线程的程序在关闭的时候却出现了问题,如果程序退出的时候不关闭线程,那么线程就会一直的存在,但是大多启动的线程都是局部变量,不能一一的关闭,如果调用Thread.CurrentThread.Abort()方法关闭主线程的话,就会出现ThreadAbortException 异常,因此这样不行。<br />后来找到了这个办法: Thread.IsBackground 设置线程为后台线程。<br />msdn对

2010-08-31 19:19:00 984

原创 《C#编程之道》 之 论编码规范的重要性

      程序员(英文programer)思义就是来编程序的人员。他们和一般工作人员是一样的,都需要合作,可能为了一个大型项目程序会有十人以上或者百人以上甚至千人以上的团队公司在一起工作。编码规范使程序规范化,易懂化,才能更好的进行合作。      编写程序的平台很多。但是它们的检查方式几乎全是检查语法,并没有规定变量命名以及方法的命名,所以注释是很必要的东西。C#里的命名是比较接近自然语言的,但缺点是名字太长。就像虽然你不喜欢你的老板,但是你得从老板手里赚钱,哈哈,这就是硬道理。      喜欢是一回事

2010-08-30 19:35:00 1038 1

原创 《C#编程之道》 之 C#面向对象编程的继承性(三)

继承的使用<br />程序中使用面向对象的继承特性时,主要分为单继承和多继承两种情况,下面分别进行介绍。1.单继承<br />单继承一般用于类之间的继承,C#中的类只支持单继承,实现单继承时,使用“子类:基类”格式。下面通过一个实例讲解如何实现单继承。<br />例  创建一个控制台应用程序,首先定义一个Language类,并在其中定义一个string类型的Name属性;然后自定义一个ProgramDic类,该类继承自Language类,该类中定义了两个方法,分别用来输出“C#编程词典”和“ASP.NET编

2010-08-30 14:09:00 775 1

原创 《C#编程之道》 之 高效使用线程

<br />开发人员在他们的应用程序中都过量使用了线程.<br />   严格来讲,线程的系统开销很大。创建一个线程的开销不小于:系统必须为线程分配并初始化一个线程内核对象,还必须为每个线程保留1MB的地址空间(按需提交)用于线程的用户模式堆栈,分配12KB(左右)的地址空间用于线程的内核模式堆栈。然后,紧接着线程创建之后,Windows调用进程中的每个DLL都有的一个函数来通知进程中所有的DLL操作系统创建了一个新的线程。同样,销毁一个线程的开销也不小————进程的每个DLL都要接收一个关于该线程即将“死

2010-08-29 11:06:00 807 1

原创 《C#编程之道》 之 C#面向对象编程的继承性(二)

<br />显式接口成员实现<br />如果类实现两个接口,并且这两个接口包含具有相同签名的成员,那么在类中实现该成员时,将导致两个接口都使用该成员作为它们的实现,然而,如果两个接口成员实现不同的功能,那么这可能会导致其中一个接口的实现不正确或两个接口的实现都不正确,这时可以显式地实现接口成员,即创建一个仅通过该接口调用并且特定于该接口的类成员。显式接口成员实现是使用接口名称和一个句点命名该类成员来实现的。<br />例  创建一个控制台应用程序,其中声明了两个接口ImyInterface1和ImyInte

2010-08-27 16:00:00 607 1

原创 《C#编程之道》 之 C#面向对象编程的继承性(一)

继承概述<br />继承是面向对象编程最重要的特性之一,它表示可以从一个类中派生出新的类,而且新类能继承基类的成员。在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性等,并且增强了代码的可重用性。<br />在面向对象编程中,被继承的类称为父类或基类,继承的类称为子类或派生类。C#中提供了类的继承机制,但只支持单继承,而不支持多重继承,即在C#中一次只允许继承一个类,不能同时继承多个类,但是可以继承多个接口。<br />继承一个类时,类成员的可访问性是一个重要的问题。子类(派生类)不能访问基类的私有

2010-08-26 19:23:00 884

原创 《C#编程之道》 之 面向对象和面向过程有什么区别?

<br />问:经常听到有人说,计算机语言可以归为面向过程语言和面向对象语言,那么到底什么是面向对象,什么是面向过程呢?<br />答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。<br />可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3

2010-08-26 19:19:00 1640

原创 《C#编程之道》 之 new操作符所做的事情

Object e = new Object();1. 它计算类型及所有基类型(最高到System.Object)中定义的所有实例字段需要的字节数,堆上的每个对象都需要一些额外的成员,称为“类型对象指针”和“同步块索引”(type object pointer 和 sync block index)这些成员将由CLR用来管理对象,这些额外成员的字节数会加到对象的大小上。2.它从托管堆中分配指定类型所需的字节数,从而分配对象的内存,分配所有字节都设为0.3.它初始化对象的“类型对象指针”和“同步块索引”成员4.

2010-08-26 19:00:00 1047

空空如也

空空如也

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

TA关注的人

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