Welcome 微信登录

首页 / 软件开发 / C#

C#3.0 中使用扩展方法来扩展接口

C#3.0 中使用扩展方法来扩展接口

C#3.0 中使用扩展方法来扩展接口2007-09-27有关扩展方法的一些知识点请参看我的前篇博客:前篇博客中我重点介绍了两个特殊场景:1、扩展方法跟原来类的方法重名时候的处理逻辑2、扩展方法的嵌套现在我们来看扩展方法使用的第三个场景:使用扩展方法来扩展接口应用场景举例:我们有时候会发现最初定义的一个接口,在现在环境下,这个接口需要再增加一个函数。有了扩展方法后,我们在这种情况下又多了一种实现的选择。下面以代码来说明这个问题:namespace Hongj...
C#3.0对象初始化器和集合初始化器

C#3.0对象初始化器和集合初始化器

C#3.0对象初始化器和集合初始化器2007-09-27 blog.joycode.com C# 3.0 中对象初始化器(Object Initializers) 和 集合初始化器(Collection Initializers) ,就是简化我们的代码,让本来几行才能写完的代码一行写完。这样在LINQ的使用中,我们才不会把一个LINQ表达式写的巨复杂无比。 由于我看到几篇讲 对象初始化器(Object Initializers)和集合初始化器(Collec...
C#静态构造函数

C#静态构造函数

C#静态构造函数2007-09-27 静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 class SimpleClass { // Static constructor static SimpleClass() { // } } 在使用静态构造函数的时...
如何优化.NET的性能

如何优化.NET的性能

如何优化.NET的性能2007-09-271)避免使用ArrayList。 因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用自定义的集合类型代替ArrayList。.net 2.0提供了一个新的类型,叫泛型,这是一个强类型,使用泛型集合就可以避免了封箱和拆箱的发生,提高了性能。2)使用HashTale代替其他字典集合类型(如StringDictionary,NameV...
c#.NET中生成GUID

c#.NET中生成GUID

c#.NET中生成GUID2007-09-29GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。”1. 一个GUID为一个128位的整数(16字节),在使用唯一标识符的情况下,你可以在所有计算机和网络之间使用这一整数。 2. GUID 的格式为...
WIN32中颜色值与.NET中颜色值(Color)的转换

WIN32中颜色值与.NET中颜色值(Color)的转换

WIN32中颜色值与.NET中颜色值(Color)的转换2007-09-29如果使用MFC与.NET混合编程,就会遇到这个问题,通过MFC编写的控件,由.NET调用,则控件中背景色的设置,需要颜色的转换。如果使用MFC与.NET混合编程,就会遇到这个问题,通过MFC编写的控件,由.NET调用,则控件中背景色的设置,需要颜色的转换。COLORREF类型颜色的值COLORREF cr=RGB(123,200,12); 其中的R、G、B三个分量的排列顺序是BGR...
Visual C#制做DLL

Visual C#制做DLL

Visual C#制做DLL2007-09-29作为软件设计和开发人员大都有过使用DLL(动态连接库)的经历,DLL的产生使得我们的应用程序在可维护性、代码的重复使用等方面都有了很大的提高。以前用的DLL一般都是用Visual C++、Delphi或者VB等编程语言来编写的,这种DLL的编写和使用,我们大都已经比较习惯了。作为新一代的程序开发语言--Visual C#,到底是如何编写和使用DLL的呢!本文就试着就这方面的问题来进行简单的介绍。 Visua...
C#编辑器csc.exe参数详解

C#编辑器csc.exe参数详解

C#编辑器csc.exe参数详解2007-09-29CSC.exe把Visual C#程序代码编译成IL文件时,有着很多参数和开关选项。正确的了解和运用这些参数和开关有时会解决一些看似很棘手的问题。下面就通过一张表来大致说明一下这些参数和开关的具体作用。这些参数和开关选项是按照字母顺序来排列的。其中带"*",是一些常用的参数或开关。选项 用途 @ * 指定响应文件。 /?, /help 在控制台的计算机屏幕上显示编译器的选项 /addm...
C#中使用Win32类库

C#中使用Win32类库

C#中使用Win32类库2007-09-29C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,结果发现 Win32 API 集非常庞大。他们没有足够的资源为所有 Win32 API 编写托管接口、加以测试并编写文档,因此只能优先处...
C#的虚方法

C#的虚方法

C#的虚方法2007-09-28 本站 当类中的方法声明前加上了virtual修饰符,我们称之为虚方法,反之为非虚。使用了virtual修饰符后,不允许再有static,abstract,或override修饰符。对于非虚的方法,无论被其所在类的实例调用,还是被这个类的派生类的实例调用,方法的执行方式不变。而对于虚方法,它的执行方式可以被派生类改变,这种改变是通过方法的重载来实现的。下面的例子说明了虚方法与非虚方法的区别。程序清单14-3:using Sy...
在派生类中对虚方法进行重载

在派生类中对虚方法进行重载

在派生类中对虚方法进行重载2007-09-28 本站 先让我们回顾一下普通的方法重载。普通的方法重载指的是:类中两个以上的方法(包括隐藏的继承而来的方法),取的名字相同,只要使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪个方法。而对基类虚方法的重载是函数重载的另一种特殊形式。在派生类中重新定义此虚函数时,要求的是方法名称、返回值类型、参数表中的参数个数、类型、顺序都必须与基类中的虚函数完全一致。在派生类中声明对虚方法的重载,要求在声明中...
C#的抽象类

C#的抽象类

C#的抽象类2007-09-28 本站 有时候,基类并不与具体的事物相联系,而是只表达一种抽象的概念,用以为它的派生类提供一个公共的界面。为此,C#中引入了抽象类(abstract class)的概念。注意:C++程序员在这里最容易犯错误。C++中没有对抽象类进行直接声明的方法,而认为只要在类中定义了纯虚函数,这个类就是一个抽象类。纯虚函数的概念比较晦涩,直观上不容易为人们接受和掌握,因此C#抛弃了这一概念。抽象类使用abstract修饰符,对抽象类的使用...
C#的抽象方法

C#的抽象方法

C#的抽象方法2007-09-28 本站 由于抽象类本身表达的是抽象的概念,因此类中的许多方法并不一定要有具体的实现,而只是留出一个接口来作为派生类重载的界面。举一个简单的例子,“图形”这个类是抽象的,它的成员方法“计算图形面积”也就没有实际的意义。面积只对“图形”的派生类比如“圆”、“三角形”这些非抽象的概念才有效,那么我们就可以把基类...
C#访问Hotmail

C#访问Hotmail

C#访问Hotmail2007-09-30仙人掌工作室POP邮件协议的优点在于它是一个开放的标准,有着完善的文档,这就使得编写POP邮件客户程序不那么困难,只要掌握了POP、SMTP的基础知识,就可以写出代理程序来执行各种任务,例如过滤广告和垃圾邮件,或提供e-mail自动应答服务。 Hotmail是世界上影响最广的Web邮件,遗憾的是,当我们要为Hotmail编写独立的客户程序(不通过浏览器访问的客户程序)时,马上就会遇到Hotmail不提供POP网关这...
用C#编写发手机中文短信息Windows服务

用C#编写发手机中文短信息Windows服务

用C#编写发手机中文短信息Windows服务2007-09-30 汕头海关大楼技术处软件科 林敏 最近在电脑城上买了一根NOKIA3210的数据线,玩了几天改LOGO、改铃声后也将数据线扔在一边。直到前几天在Http://oxygensoftware.com上看到有发手机短信息的二次开发控件,才想起多日不用的数据线,而且最近在学C#,觉得用C#做个发短信息的程序也不错,经过多天的测试,终于实现用电脑+数据线+手机的模式,实现在单位的局域网平台上发送短信息了...
<< 111 112 113 114 115 116 117 118 119 120 >>