- 浏览: 1074967 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- C++ (39)
- Java (74)
- Java界面开发学习笔记 (4)
- Java用户的c++之旅 (0)
- 自言自语 (12)
- DSP (1)
- MCU (0)
- CG (0)
- Jabber (0)
- Gloox (0)
- Linux (11)
- Windows (19)
- Networks (4)
- Jobs (0)
- PHP (1)
- JSP (2)
- 生活 (35)
- C (2)
- Qt4 (2)
- C# (50)
- WPF (5)
- ASP (2)
- FLEX (47)
- SQL (20)
- JavaScript (12)
- SharePoint (6)
- GWT (1)
- Dojo (9)
- HTML (11)
- Others (7)
- 如何安装配置系列 (7)
- UML (2)
- Android (3)
- alibaba (1)
最新评论
-
zxjlwt:
学习了http://surenpi.com
Firefox插件开发: Hello World! -
ylldzz:
楼主知道MVEL怎么调试么
MVEL简介及快速使用 -
blueman2012:
您好,可否提供源码下载,我把您的代码贴过来后,好多报错的,谢谢 ...
Log4J日志解析 -
svygh123:
你的游标都没有关闭呢!
MYSQL游标嵌套循环示例 -
dizh:
写的很好啊
MVEL简介及快速使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DelegateExample { /// <summary> /// 给排序算法传递一个动态比较函数的委托示例 /// </summary> // 进行排序的委托 public delegate bool Compare(int left, int right); public class MyDelegateTest { private int[] items; public int[] Items { set { items = value; } get { return items; } } // 比大 public bool Greater(int left, int right) { return left > right; } // 比小 public bool Less(int left, int right) { return !Greater(left, right); } public void Sort(Compare compare) { for (int i = 0; i < items.Length - 1; i++) { for (int j = i + 1; j < items.Length; j++) { if (compare(items[i], items[j])) { int tmp = items[i]; items[i] = items[j]; items[j] = tmp; } } } } } class Sort { /* public static void Main() { MyDelegateTest sample = new MyDelegateTest(); int[] items = new int[10] { 7, 4, 9, 1, 3, 2, 8, 5, 6, 0}; sample.Items = items; // 使用降序 sample.Sort(new Compare(sample.Less)); for (int i = 0; i < sample.Items.Length; i++) { Console.WriteLine(sample.Items[i]); } Console.Read(); }*/ } /// <summary> /// 一个简单的委托示例 /// </summary> // 新建一个用以输出消息的委托 public delegate void WriteMessage(); public class MyDelegateTest2 { // 一个输出消息的静态方法 public static void StaticWrite() { Console.WriteLine("委托调用了一个静态方法."); } // 一个输出消息的类实例方法 public void Write() { Console.WriteLine("委托调用了一个类实例方法."); } } class WriteMessageClass { public static void Main() { // 新建一个委托,回调函数是一个静态方法 WriteMessage wm = new WriteMessage(MyDelegateTest2.StaticWrite); wm(); Console.WriteLine(); // 新建一个委托并与加到先前建立的委托组成委托链,回调函数是一个类实例方法 MyDelegateTest2 mdt = new MyDelegateTest2(); wm += new WriteMessage(mdt.Write); // 执行委托链上所有的回调函数 wm(); Console.Read(); } } }
发表评论
-
策略模式
2010-10-08 16:34 1172一、概念 策略模式(Strategy):它定义了一系 ... -
C#获取返回错误码
2010-05-21 17:59 1808[DllImport("TestWin32Dl ... -
VS.NET 开发Windows服务的步骤
2010-05-20 14:25 1598在很多应用中需要做windows服务来在一些后台操作,比如监视 ... -
c# 允许服务与桌面交互
2010-05-20 14:20 2700我们写一个服务,有时候要让服务启动某个应用程序,就要修 ... -
C#单例模式的三种写法
2010-05-19 15:58 48568第一种最简单,但没有考虑线程安全,在多线程时可能会出问题, ... -
C#中获取我的文档系统文件夹路径
2010-05-17 15:29 2269本技巧使用GetFolderPath方法来获取指向由指定枚 ... -
C#自定义事件的步骤介绍
2010-05-13 17:54 3292通常C#自定义事件有下面的几个步骤: ... -
使用反射机制遍历对象中的属性名及属性值
2010-05-03 16:20 2837首先描述一种情景,当给你一个VO类(这个类是映射到数据库的表 ... -
C#的逆向工程-IL指令集
2010-04-30 10:28 1672一些 IL 语言解释: ... -
使用SqlHelper时“阅读器关闭时read的尝试无效”的解决方法
2010-04-20 14:54 1814原SqlHelper类中ExecuteReader方法体 ... -
C# 删除文件夹
2009-12-31 11:28 2554/// <summary> ... -
System.Windows.Forms.Timer和System.Timers.Timer的区别 [转]
2009-12-16 23:44 5196.NET Framework里面提供了三种Timer: ... -
关于var1=var2=something赋值语句的思考
2009-11-18 16:16 1228刚才在阅读《c#本质论》一书时,开头有提到var1=var2= ... -
C#使textbox滚动到最新一行
2009-11-16 12:33 2524方法1: textBox.Text += " ... -
Invoke()/BeginInvoke()区别
2009-11-15 17:43 7219查看MSDN如下: Control..::.Inv ... -
Invoke 和 BeginInvoke 的真正涵义
2009-11-15 17:37 1323BeginInvoke 方法真的是新开一个线程进行异步调用 ... -
编写安全的多线程C#程序
2009-11-15 01:24 1899与多线程相关的两个常见的需要解决的问题是:临界资源保护和线 ... -
线程,同步与锁——Lock你到底锁住了谁
2009-11-15 01:18 1593线程在多核时代的优势月来越明显,多线程编程的学习也提上议事日程 ... -
关于lock(this)的说明及用法
2009-11-15 01:16 5342一. 为什么要lock,lock了 ... -
远程dll注入 C#
2009-11-14 16:43 3134using System; using System. ...
相关推荐
本示例代码将深入探讨C#委托的使用及其重要性。 首先,理解委托的基本概念是至关重要的。在C#中,委托是一种类型,它封装了指向静态或实例方法的指针。这使得我们可以将方法当作其他方法的参数,或者存储在类的字段...
以下是一个简单的多播委托示例: ```csharp public static void AddMethod(MyDelegate del) { del += DisplayMessage; } public static void RemoveMethod(MyDelegate del) { del -= DisplayMessage; } // 调用...
本资源"**C#源代码-使用委托进行窗体间的传值.zip**"提供了一组示例代码,帮助开发者理解如何在不同窗体间通过委托传递数据。下面我们将详细探讨这一主题。 首先,委托在C#中是一种类型,它是对方法的引用。它定义...
委托的真正价值在于其匿名性和多播能力。例如,`MultiCall`方法接收一个`SimpleDelegate`实例和一个整数`count`,并根据`count`的值重复调用该委托所封装的方法: ```csharp void MultiCall(SimpleDelegate d, int ...
总的来说,"weituo.zip_委托"中的示例可能演示了如何创建、实例化和使用委托,以及如何将委托与事件相结合来构建灵活的代码结构。学习和理解委托是掌握C#高级特性和设计模式的关键步骤,能够帮助我们编写出更高效、...
- **场景一:** 静态方法和实例方法的委托使用。展示了如何使用委托调用静态和实例方法。 - **场景二:** 通过事件的触发来实现灰太狼“叫一声”时羊群“逃跑”的逻辑。这里需要两个类:`Wolf`和`Goat`,当`Wolf`的`...
【压缩包子文件的文件名称列表】"C#范例开发大全源代码--刘丽霞版" 暗示文件包含了一系列C#编程的示例代码,这些代码可能覆盖了C#语言的基本概念到高级特性,包括但不限于: 1. **基础语法**:如变量声明、数据类型...
接下来,我们将通过示例代码进一步理解委托的工作原理: ```csharp using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // 创建委托实例 MyDelegate d1 = ...
- 根据提供的压缩包文件 `Lession4`,我们可以推测这是教程的第四部分,可能包含关于如何在实际项目中使用委托和事件的具体示例代码。 - 通过查看这些文件,你可以更深入地理解如何在 DotNetty 框架下集成和使用...
在C#中,可以使用静态成员或者`lock`关键字实现,但更推荐使用`Lazy<T>`或`Singleton<T>`结构。 2. **工厂模式**:提供一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们的具体类。C#中的工厂方法可以是...
设计模式是软件开发中的宝贵经验总结,用于解决常见的设计问题并提供可复用的解决方案。本资源主要关注两种经典的设计模式:...在阅读和分析提供的`DesignMode`代码示例时,你会更好地掌握这两种设计模式的实现细节。
实际上,C#的委托本质上就是多播委托,也就是说,一个委托实例可以关联多个方法。因此,委托链只是多播委托的一个特殊形式,即按照特定顺序执行的多播委托。 总结来说,C#的委托链提供了一种灵活的方式来组织和执行...
16. C#代码示例: - 这段代码使用了`System.Threading.Timer`,创建了一个定时器,每隔2秒调用`CheckStatus`方法。 这些是C#初级开发者应该掌握的基础知识,包括数据类型、数组、结构体、类、静态成员、委托、继承...
#### 示例代码解析 以下是一个具体的例子,展示了如何在C#中使用委托: ```csharp namespace DelegateTest { public delegate int MyDelegateTest(int i, int j); class Calculate { public static int Add...
通过以上示例,我们可以看到C#中使用多线程的基本方式。通过引入`System.Threading`命名空间,我们能够利用`Thread`类和其他相关类来创建并管理线程。这些基础示例展示了如何创建简单的线程,并行执行多个任务,以及...
C#中的委托支持多播,意味着一个委托实例可以同时引用多个方法。这可以通过使用`+`运算符来添加更多的方法到现有的委托实例: ```csharp myDelegate += AnotherMethod; ``` 4. **委托的调用** 调用委托就像...
##### 示例代码解析 下面通过具体的代码示例来深入了解如何在C#中使用反射: ```csharp // 1. 使用反射加载DLL文件 using System; using System.Reflection; public void test1() { Assembly ass; Type type; ...
多个委托可以通过`+`操作符合并,通过`-`操作符删除特定的委托实例。这在处理事件时非常有用,可以添加或移除事件处理程序。 【四】委托的源码解析 委托实质上是.NET框架内部的System.Delegate类的实例。委托的...
C#设计模式示例代码集合了23种经典的设计模式,由James W. Cooper编写,为C#开发者提供了宝贵的资源,帮助他们提升代码质量和可维护性。下面将详细阐述这23种设计模式及其在C#中的应用。 1. 单例模式(Singleton)...