Welcome 微信登录

首页 / 软件开发 / C#

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结果,你会发现这两者之间的差别...
C#委托和事件详解

C#委托和事件详解

C#委托和事件详解2007-11-04委托 和 事件在 .net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里憋得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。...
C#程序Bug的快速修复方法

C#程序Bug的快速修复方法

C#程序Bug的快速修复方法2007-11-05本文将为大家介绍一下如何对程序Bug修复的快速方法。.net Framework中包含许多工具可以用来更快、更容易地编写正确的程序。但我们得面临这样的情况:出现bugs。不管程序多么简单,程序员都可能出错。根据我的经验,大多数程序的bugs出现在程序员之间的接口:当一个程序员编写的代码被另一个程序员调用时。不知何故,调用者破坏了代码编写时做的假设。是谁的过错呢?这并不要紧,更重要的是你能多快修好它?下面这些技...
C#中ArrayList.CopyTo()运行错误的解决方法

C#中ArrayList.CopyTo()运行错误的解决方法

C#中ArrayList.CopyTo()运行错误的解决方法2007-11-05 本站 在开始讲解C#中ArrayList.CopyTo()运行错误的解决方法之前,先给大家看一段代码:以下是引用片段:ArrayList list = new ArrayList();list.Add(1);list.Add(2);byte[] buf = new byte[2];list.CopyTo(buf);这段代码看上去,好正常,编译也很顺利通过,不过执行的时候出错了...
<< 1 2 3 4 5 6 7 8 9 10 >>