Welcome 微信登录

首页 / 软件开发 / C#

.NET 3.x新特性之Lambda表达式

.NET 3.x新特性之Lambda表达式

.NET 3.x新特性之Lambda表达式2007-10-04网魂小兵随着岁月的流逝,VS也从2005慢慢的步入2008,.NET也将进入3.5版本,学习的脚步也要慢慢赶上。今天我们来看看C#3.0的又一特性Lambda表达式,它由2.0代理演化而来,也是为LinQ做好必要的准备。Lambda表达式首先我们要知道他的运算符“=>”,在我以前的一篇文章中可以得到在不同版本中所使用代理和通过Lambda表达式的一个例子,你可以在这...
.Net编程接口剖析系列之比较和排序

.Net编程接口剖析系列之比较和排序

.Net编程接口剖析系列之比较和排序2007-10-04 IT168 Pandaren我们知道,与C++相比较,C#以及整个.Net并不支持多继承,而相应的,C#支持了接口,并且支持一个类型实现多个接口。对于接口的概念,相信大部分读者已经有了很好的了解,而我这里谈谈个人对于接口理解,只求抛砖引玉。在我认为,一个接口就是一个对类型的某种能力的认证,并且是以某种标准化的形式将这种能力规范出来。你的类型实现了某个接口,换而言之,也就是说这个类型具备了此接口所标识...
.NET 3.x新特性体验之扩展方法

.NET 3.x新特性体验之扩展方法

.NET 3.x新特性体验之扩展方法2007-10-04网魂小兵今天我们接着看一下.NET 3.x的新特性:扩展方法。这里需要说明的是我所说的.NET 3.x的新特性,其实是C# 3.0的一些新特性,考虑到LinQ等我就把这些特性叫做.NET 3.x新特性。可能这样叫会有些歧义,但是我还是觉的这样还好,闲话不多说让我们进入正题。我觉得在C#3.0中引入自动化属性等就已经减少了我们不少负担,而扩展方法是我最喜欢的,它提供的可视化提示中显得更为巧妙。但是我也会...
.NET 3.x新特性之自动属性及集合初始化

.NET 3.x新特性之自动属性及集合初始化

.NET 3.x新特性之自动属性及集合初始化2007-10-04今天公司弄了个2008 beta 2中文版,虽然很大一部分是为了JS的智能提示外,也应该好好的温习一下.NET的一些新特性,由于以前写过一些文章,但是都没有系统的学过,都只是尝一下新鲜感。不知道从那开始,所以今天就来看看自动话属性,以及对象初始化和集合初始化的一些新特性。1.自动属性在做一个程序是我们离不开属性,特别是实体类。我们用指头一个一个的敲着get和set及局部的变量(Fields),...
Visual C#多线程参数传递浅析

Visual C#多线程参数传递浅析

Visual C#多线程参数传递浅析2007-10-04TonyWang我们在写Remoting或者其他的一些应用程序的时候难免要和线程打交道,.Net使我们很容易就可以创建一个线程,但是它提供的创建线程和启动线程的方法没有明显的提供参数,假如我们要用线程来启动类里面一个带参数的方法该怎么办?下面就简单的介绍如何使用.NET提供的丰富的框架来实现这个功能。为了可以生动详细的介绍整个过程,我建立下面的一个.NET类,它也是要用线程启动的方法的载体。类如下所示...
Visual C#中定义和使用自己的特性

Visual C#中定义和使用自己的特性

Visual C#中定义和使用自己的特性2007-10-04 博客园 David Tansey复杂的,面向组件的业务开发,期待现代的软件开发工程师们具备更多的弹性设计,而不是过去的方法设计。微软的.NET框架通过众所周知的声明式编程,广泛的使用特性来附加额外的功能。在软件系统里,特性可以增强系统的弹性,这是因为,特性使功能的松耦合得到了增强。所以,你可以定制自己的特性类,然后根据你自己的意图,合理的使用这些具有松耦合功效的特性。使用.NET框架编写Wind...
C#中的ref关键字

C#中的ref关键字

C#中的ref关键字2007-10-04Kellin最近有人问到 ref 关键字的正确用法,下面我们来举例说明。其实要更好的理解 ref 关键字,结合 C++ 代码更加容易一些。另外在开始我们的例子之前,需要提前说明几点:C# 中的有两种类型:引用类型(reference types)和值类型(value types)。 简单类型(包括int, long, double等)和结构(structs)都是值类型,而其他的类都是引用类型。 简单类型在传值的时候会...
Remoting基本原理及扩展机制(中)

Remoting基本原理及扩展机制(中)

Remoting基本原理及扩展机制(中)2007-10-04idior在上一篇文章我们已经介绍到通过在配置文件中指定自定义的ChannelSinkProvider,我们可以在Pipeline中加入自己的ChannelSink,此时我们就可以加入自己的信息处理模块,但是这里我们所能操作的对象是已经经过格式化的消息(即数据流),我们看不到原始的消息对象,这也势必影响了我们所能实现的扩展功能。而在上文的图1中,我们看到除了ChannelSink可以扩展之外,我们...
Remoting基本原理及扩展机制(下)

Remoting基本原理及扩展机制(下)

Remoting基本原理及扩展机制(下)2007-10-04idior让我们在开始本节内容之前先了解以下几个基本概念。应用程序域应用程序域(通常简称为AppDomain)可以视为一种轻量级进程。一个Windows进程内可以包含多个AppDomain。AppDomain这个概念的提出是为了实现在一个物理服务器中承载多个应用程序,并且这些应用能够相互独立。ASP.NET中利用AppDomain在同一个进程内承载了多组Web应用程序就是一个例子。实际上微软曾进行...
设计模式C#描述-单例与多例模式

设计模式C#描述-单例与多例模式

设计模式C#描述-单例与多例模式2007-11-04作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个提供这个实例。这个类称为单例类。单例模式有以下特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承。public class Singleton{private static Singleton m_instance =...
C#语言的未来功能

C#语言的未来功能

C#语言的未来功能2007-11-04Prashant Sridharan简介C# 是创新性的新式编程语言,它巧妙地结合了最常用的行业语言和研究语言中的功能。在保持 C# 设计思想不变的同时,Microsoft 在 C# 语言中引入了几种潜在的新功能,提高了开发人员在语言构造方面的效率。Microsoft C#自 2001 年 2 月 C# 问世以来,很多开发人员已经开始使用 C# 编程语言来构建软件。而 Microsoft 自身也使用 C# 构建了几种正...
C#3.0匿名方法的实现与应用

C#3.0匿名方法的实现与应用

C#3.0匿名方法的实现与应用2007-11-04 IT168 Yuanshu前面的文章中,大家已经对C#3.0的新特性有了一个基本的了解,比如强大的LINQ语言和扩展方法的应用,今天给大家介绍的是C#3.0中添加的另一个重要的新特性:匿名方法。1. 匿名溯源匿名的历史可谓由来已久,在C#2.0中匿名方法就已经大量使用在委托(delegate)的应用场景中。下面我举几个例子大家可以简单回顾一下:1) 当我们需要调用一个回调方法时,不需要构建委托对象,只需要...
C# 2.0的Specification(匿名方法)(二)

C# 2.0的Specification(匿名方法)(二)

C# 2.0的Specification(匿名方法)(二)2007-11-0421.7委托实例相等性 如下规则适用由匿名方法委托实例的相等运算符(§7.9.8)和object.Equals方法产生的结果。l 当委托实例是由具有相同被捕获外部变量集合的语义相同的匿名方法表达式计算而产生时,可以说(但不是必须)它们相等。l 当委托实例由具有语义不同的匿名方法表达式,或具有不同的被捕获外部变量集合时,它们决不相等。21.8明确赋值 匿名...
c#匿名方法的静态数据成员和实例数据成员用法

c#匿名方法的静态数据成员和实例数据成员用法

c#匿名方法的静态数据成员和实例数据成员用法2007-11-04匿名方法总是以一个delegate关键字开始,后面跟着用在方法和方法体(the method body)本身中的参数。正如从上面示例中所见,用户不需要确定匿名方法的返回类型。它(译注:指返回类型)由方法体中的return语句推断而来。.NET CLR不能执行像匿名方法一样的自由流(free flowing)代码块。CLR要求:它执行的每个方法是一个类型的一部分,并且应该是一个静态(static...
充分利用C#匿名方法的平台优势

充分利用C#匿名方法的平台优势

充分利用C#匿名方法的平台优势2007-11-04在C# 1.1里,声明和使用委托要求你有委托和一个在委托被触发时具有匹配签名的能够执行的方法,以及一个将命名方法与委托关联的分配语句。作为C# 2.0的新特性,匿名方法基本上能够提供与先前命名方法相同的功能,但是它已经不再需要一个在关联到委托之前就明确创建的方法了。你可以把匿名方法想象为一个实现与委托进行关联这项功能的便捷途径。如果同时看一下匿名方法实现和命名方法实现所取得IL结果,你会发现这两者之间的差别...
<< 111 112 113 114 115 116 117 118 119 120 >>