- 浏览: 255723 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NetTest
{
//泛型委托
class TestGenericDelegate
{
public delegate void StackEventHandler<T, U>(T sender, U eventArgs);
class Stack<T>
{
/*
在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:
T 是引用类型还是值类型。
如果 T 为值类型,则它是数值还是结构
给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。
解决方案是使用 default 关键字,此关键字对于引用类型会返回 null,对于数值类型会返回零。
对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型
*/
public T getName()
{
T temp = default(T);
return temp;
}
public class StackEventArgs : EventArgs
{
public string Name { get; set; }
public string Message { get; set; }
}
public event StackEventHandler<Stack<T>, StackEventArgs> stackEvents;
public void StackChange()
{
StackEventArgs s = new Stack<T>.StackEventArgs();
s.Name = "jack";
s.Message = "Better Man";
OnStackChanged(s);
}
protected virtual void OnStackChanged(StackEventArgs e)
{
stackEvents(this, e);
}
}
class SampleClass
{
public void HandleStackChange<T>(Stack<T> stack, Stack<T>.StackEventArgs args)
{
Console.Out.WriteLine(args.Message + "," + args.Name);
}
}
public void Test()
{
Stack<double> s = new Stack<double>();
SampleClass o = new SampleClass();
s.stackEvents += o.HandleStackChange;
s.StackChange();
Console.Out.WriteLine(s.getName());
}
}
}
发表评论
-
C#拾遗系列(1):委托
2008-06-11 14:43 587一、委托概述 委托具有以下特点: 委托类似于 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 7111. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6161. 主要演示构造函数的继承 声明空 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 7681. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 586using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 5191. 示例: using System; using Sys ... -
C#拾遗系列(7):自定义属性
2008-06-18 14:52 6411 .描述 属性提供功能强大的方法以将声明信息与 C# 代码( ... -
C#拾遗系列(8):异常
2008-06-19 11:02 595using System; using System.Col ... -
C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型
2008-06-19 15:07 1145本文内容: 继承 Equal示例 结构和类 ... -
MSIL(0):简介
2009-03-04 23:06 853Microsoft Intermediate Language ... -
MSIL(1): Hello World
2009-03-09 22:14 7631. 用记事本编写如下代码 .assembly HelloWo ... -
代码段:ASCII to Unicode
2009-04-17 10:44 7761: private string Co ... -
Get countries from system
2009-05-08 16:02 7951: using System; 2: usi ... -
[Tips]:Read value from Resource file in C#
2009-05-18 16:18 10291: //Namespace refer ... -
[tips]: 多线程 ManualResetEvent
2009-05-21 14:23 1339WaitHandle用于实现对共享资源的独占访问,AutoRe ... -
C#拾遗系列(1):委托
2008-06-11 14:43 668一、委托概述 委托具有以下特点: 委托 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 5991. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6291. 主要演示构造函数的继承 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 5901. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 7091. 示例: using System; using Sys ...
相关推荐
C++设计新思维:泛型编程与设计模式之应用.pdf 带目录书签
委托在C#中相当于函数指针,而泛型委托允许我们传递具有不同参数类型的委托。一个常见的例子是`Func, TResult>`和`Action<T>`,它们分别表示带有一个输入参数并返回结果的委托和不返回结果的委托。以下示例展示了...
《C#2.0 锐利体验系列课程(1):泛型编程》是一门针对C#编程语言的进阶课程,旨在深入讲解C#2.0中的泛型概念及其应用。泛型是.NET框架中的一项重要特性,它极大地提高了代码的重用性和类型安全性,减少了类型转换的...
在C#编程语言中,泛型是一个强大的特性,它允许我们编写可重用的代码,同时保持类型安全和性能。泛型主要分为四个关键部分:泛型类、泛型方法、泛型接口和泛型委托。下面将详细介绍这四个方面。 1. 泛型类: 泛型类...
《C++设计新思维:泛型编程与设计模式之应用》是一本深入探讨C++编程技术的著作,尤其强调了泛型编程和设计模式在实际软件开发中的应用。作者通过丰富的实例和深入的分析,引领读者理解并掌握C++的核心理念和高级...
这是一个泛型委托的示例,主要是让初学者了解泛型委托的用法,虽然很简单,但是代码有注释,我的这个例子是在vs2010中做的,用vs08的朋友们,最好还是转一下,但是绝对能实现(本程序是控制台应用程序,适合初学者)...
C++ 设计新思维:泛型编程与设计模式之应用C++ 设计新思维:泛型编程与设计模式之应用C++ 设计新思维:泛型编程与设计模式之应用C++ 设计新思维:泛型编程与设计模式之应用C++ 设计新思维:泛型编程与设计模式之应用
5. **泛型委托与LINQ**:在 LINQ(Language Integrated Query)表达式中,泛型委托扮演着重要角色,使得我们能够对各种数据源执行通用的操作。 6. **性能优化**:由于泛型委托可以减少装箱和拆箱操作,因此在某些...
本示例是基于VS2015编译环境,主要展示了自定义委托、泛型委托以及多播委托的使用。 **一、自定义委托** 自定义委托允许我们创建符合特定签名的委托类型。首先,我们需要定义一个委托类,它声明了委托可以处理的...
在C#中,泛型委托是一种非常有用的特性,它允许我们创建能够处理多种数据类型的委托。通过泛型委托,开发者可以在不重复代码的情况下实现对不同类型的处理。 **泛型委托的基本概念** 泛型委托的核心思想是“泛型...
[第24讲:泛型实例(C#视频教程 + C#源代码)专业课程管理模块实现.zip] 根据【田洪川 天轰穿 C#视频教程】的【第24讲:泛型实例】实现,VS2010编译运行正常。 源代码与视频教程中略有不同! 本人不是天轰穿,在此对...
泛型+反射:泛型 笔记 ,课后作业
【VC++ 2005:泛型编程】 泛型编程是C++/CLI中的一种重要特性,允许程序员创建可重用的代码,这些代码能够处理多种数据类型,而无需每次都复制和修改代码。泛型编程的核心思想是参数化类型,即将数据类型作为一个...
- **类型擦除**:C#泛型使用了一种称为类型擦除的技术,在编译后,所有的类型参数被替换为其实际类型,生成的IL代码中没有类型参数的概念,只有具体的类型。 - **类型约束**:在定义泛型时,可以添加类型约束,如...
5. **泛型委托和事件**:泛型也可以应用于委托和事件,增加代码的灵活性。 6. **泛型的继承与多态**:泛型类可以作为其他类的基础,实现多态性。 7. **泛型集合的扩展方法**:如LINQ中的`Enumerable<T>`和`...
在VC++ 2005中,泛型编程是C++编程语言的一项重要特性,它引入了类似C#和Java中的泛型概念,使得程序员可以编写更加通用和高效的代码。泛型编程允许创建不依赖于特定数据类型的代码模板,从而实现代码重用并提高性能...
### C# 泛型集合与非泛型集合详解 #### 一、概述 在.NET Framework Class Library (FCL) 中,提供了丰富的集合类型,这些集合类型是编程中不可或缺的工具。根据是否支持泛型特性,这些集合大致可以分为两类:泛型...
5. **策略模式实现**:利用泛型和委托实现策略模式,允许在运行时动态改变算法的行为。 6. **LINQ和泛型委托**:展示如何结合C#的Language Integrated Query (LINQ)语法和泛型委托进行数据查询和转换。 通过学习和...
6. **泛型集合**:C#的System.Collections.Generic命名空间提供了许多泛型集合,如List、Dictionary, TValue>、Queue和Stack等。这些集合比非泛型版本更安全,因为它们在编译时就进行了类型检查,减少了运行时的错误...