技术成就梦想

知道用户需求,做到专注!c#,donet,Frameworks,UML,面向对象,设计模式!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2010年4月20日

摘要: 什么也不说了,直接看代码就搞定了。using System;using System.ComponentModel;using System.Web.UI;using System.Web.UI.WebControls;namespace UserControlTools{ [DefaultProperty("Text"), ToolboxData("<{0}:Tools runat=ser... 阅读全文

posted @ 2010-04-20 09:47 我不是高手 阅读(250) 评论(0) 推荐(0) 编辑

摘要: 在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T: T 是引用类型还是值类型。如果 T 为值类型,则它是数值还是结构。给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。解决方案是使用 default 关键字,此关键字对于引用类型会返回空,对于数... 阅读全文

posted @ 2010-04-20 09:27 我不是高手 阅读(330) 评论(0) 推荐(0) 编辑

摘要: 委托 可以定义自己的类型参数。引用泛型委托的代码可以指定类型参数以创建已关闭的构造类型,就像实例化泛型类或调用泛型方法一样,如下例所示:C#public delegate void Del<T>(T item);C# 2.0 版具有称为方法组转换的新功能,此功能适用于具体委托类型和泛型委托类型,并使您可以使用如下简化的语法写入上一行: C#在泛型类内部定义的委托使用泛型类类型参数的方式... 阅读全文

posted @ 2010-04-20 09:26 我不是高手 阅读(233) 评论(0) 推荐(0) 编辑

摘要: 泛型方法是使用类型参数声明的方法,如下所示:C#static void Swap<T>(ref T lhs, ref T rhs)下面的代码示例演示一种使用 int 作为类型参数的方法调用方式:C#public static void TestSwap()也可以省略类型参数,编译器将推断出该参数。下面对 Swap 的调用等效于前面的调用:C#相同的类型推断规则也适用于静态方法以及实例方... 阅读全文

posted @ 2010-04-20 09:25 我不是高手 阅读(451) 评论(0) 推荐(0) 编辑

摘要: 为泛型集合类或表示集合中项的泛型类定义接口通常很有用。对于泛型类,使用泛型接口十分可取,例如使用 IComparable<T> 而不使用 IComparable,这样可以避免值类型的装箱和取消装箱操作。.NET Framework 2.0 类库定义了若干新的泛型接口,以用于 System.Collections.Generic 命名空间中新的集合类。 将接口指定为类型参数的约束时,只能... 阅读全文

posted @ 2010-04-20 09:24 我不是高手 阅读(10396) 评论(0) 推荐(0) 编辑

摘要: 泛型类封装不是特定于具体数据类型的操作。泛型类最常用于集合,如链接列表、哈希表、堆栈、队列、树等,其中,像从集合中添加和移除项这样的操作都以大体上相同的方式执行,与所存储数据的类型无关。对于大多数需要集合类的方案,推荐的方法是使用 .NET Framework 2.0 类库中所提供的类。 一般情况下,创建泛型类的过程为:从一个现有的具体类开始,逐一将每个类型更改为类型参数,直至达到通用化和可用性的... 阅读全文

posted @ 2010-04-20 09:23 我不是高手 阅读(505) 评论(0) 推荐(0) 编辑

摘要: 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束: 约束 说明 T:结构类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。T:类类型参数必须是引用类型,包括任何类、接口、委托或数组类型。... 阅读全文

posted @ 2010-04-20 09:21 我不是高手 阅读(465) 评论(0) 推荐(0) 编辑

摘要: 在泛型类型或方法定义中,类型参数是客户端在实例化泛型类型的变量时指定的特定类型的占位符。泛型类(如泛型介绍(C# 编程指南)中列出的 GenericList<T>)不可以像这样使用,因为它实际上并不是一个类型,而更像是一个类型的蓝图。若要使用 GenericList<T>,客户端代码必须通过指定尖括号中的类型参数来声明和实例化构造类型。此特定类的类型参数可以是编译器识别的任... 阅读全文

posted @ 2010-04-20 09:20 我不是高手 阅读(1292) 评论(0) 推荐(0) 编辑

摘要: 在公共语言运行库和 C# 语言的早期版本中,通用化是通过在类型与通用基类型 Object 之间进行强制转换来实现的,泛型提供了针对这种限制的解决方案。通过创建泛型类,您可以创建一个在编译时类型安全的集合。使用非泛型集合类的限制可以通过编写一小段程序来演示,该程序利用 .NET Framework 基类库中的 ArrayList 集合类。ArrayList 是一个使用起来非常方便的集合类,无需进行修... 阅读全文

posted @ 2010-04-20 09:19 我不是高手 阅读(287) 评论(0) 推荐(0) 编辑

摘要: .net 2.0 提供对泛型的支持。虽然在开发过程中有用到的地方,但是对概念一直是一知半解。今天终于恨下心来阅读一下MSDN上说明。并copy下,供以后所需。泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。泛型通常用在集合和在集合上运行的方法中。.NET Framework 2.0 版类库提供一个新的命名空间 System.Collections.Generi... 阅读全文

posted @ 2010-04-20 09:18 我不是高手 阅读(225) 评论(0) 推荐(0) 编辑

摘要: 大家还是要常用用csc,个人感觉有时vs有不少不太方便的东西。C:\>csc /help |more Microsoft (R) Visual C# 编译器版本7.00.9254 [CLR version v1.0.2914] 版权所有 (C) Microsoft Corp 2000-2001。保留所有权利。 Visual C# 编译器选项 - 输出文件 - /out:<文 件&... 阅读全文

posted @ 2010-04-20 04:30 我不是高手 阅读(277) 评论(0) 推荐(0) 编辑

摘要: 针对VisualStudio2005 1:右键点击"我的电脑"--"属性"--"高级"--"环境变量"--"系统变量" 将PATH中加上路径:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ 2:直接在dos环境的cs相应文件夹目录执行 Path=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ 3:Visua... 阅读全文

posted @ 2010-04-20 04:03 我不是高手 阅读(2584) 评论(1) 推荐(1) 编辑