1. 委托是什么?

委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的。委托的类型由委托的名称定义。

2. 委托类型的定义

委托是类型,就好像类是类型一样。与类一样,委托类型必须在被用来创建变量以及类型对象之前声明。
delegate void MyDel(int x);
委托类型声明:(1) 以deleagate关键字开头。(2)返回类型+委托类型名+参数列表。

3. 声明委托变量

MyDel del1,del2;

4. 初始化委托变量

(1) 使用new运算符new运算符的操作数的组成如下
  • 委托类型名
  • 一组圆括号,其中包含作为调用列表中的第一个成员的方法的名字。方法可以是实例方法或静态方法。
del1 = new MyDel( myInstObj.MyM1 );del2 = new MyDel( SClass.OtherM2 );
(2)使用快捷语法快键语法,它仅由方法说明符构成。之所以能这样,是因为在方法名称和其相应的委托类型之间有隐式转换。
del1 = myInstObj.MyM1;del2 = SClass.OtherM2;

5. 赋值委托

由于委托是引用类型,我们可以通过给它赋值来改变包含在委托变量中...点击进入阅读全文

BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),false 表示位是关闭的(0)。当您需要存储位,但是事先不知道位数时,则使用点阵列。您可以使用整型索引从点阵列集合中访问各项,索引从零开始。

BitArray 类的方法和属性

下表列出了BitArra 类的一些常用的属性
属性描述
Coun获取 BitArray 中包含的元素个数。
IsReadOnl...
点击进入阅读全文

队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队

Queue 类的方法和属性

下表列出了Queu 类的一些常用的属性
属性描述
Coun获取 Queue 中包含的元素个数。
下表列出了Queu 类的一些常用的方法
序号方法名 &
public virtual void Clear();...
点击进入阅读全文

堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。

Stack 类的方法和属性

下表列出了Stac 类的一些常用的属性
属性描述
Coun获取 Stack 中包含的元素个数。
下表列出了Stac 类的一些常用的方法
序号方法名 &
public virtual void Clear();...
点击进入阅读全文

SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。排序列表是数组和哈希表的组合。它包含一个可使用键或索引访问各项的列表。如果您使用索引访问各项,则它是一个动态数组(ArrayList),如果您使用键访问各项,则它是一个哈希表(Hashtable)。集合中的各项总是按键值排序。

SortedList 类的方法和属性

下表列出了SortedLis 类的一些常用的...点击进入阅读全文

Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用来访问集合中的元素。当您使用访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。

Hashtable 类的方法和属性

下表列出了Hashtabl 类的一些常用的属性
属性描述
Coun获取 Hashtable 中包含的键值对个数。
IsFixedSiz获取一个值,表示 Hashtable 是否具有固定大小。...
点击进入阅读全文

动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

ArrayList 类的方法和属性

下表列出了ArrayLis 类的一些常用的属性
属性描述
Capacit获取或设置 ArrayList 可以包含的元素个数。...
点击进入阅读全文

日常生活中的事物都是有类型的,比如我们说“一个女人”,那么“女”就是这个人的类型。我们可以说“女人都是水做的”,那么听者都知道这是在说“女”这种类型的人。再比如你去肉店买肉,你可以对老板说“我要十斤猪肉”,那么老板一定知道你是在要“猪”这种类型的肉。日常生活中的这些语言都是带有类型的,但是在日常生活中还有一些语言是不带类型的。比如我们经常说“人是贪婪的”,这里的人就没有类型之分,听者都知道是指所有...点击进入阅读全文

简介:ref和out是C#开发中经常使用的关键字,所以作为一个.NET开发,必须知道如何使用这两个关键字.1、相同点ref和out都是按地址传递,使用后都将改变原来参数的数值。2、ref关键字(1)、使用ref关键字的注意点i、方法定义和调用方法都必须显式使用 ref 关键字ii、传递到 ref 参数的参数必须初始化,否则程序会报错iii、通过ref的这个特性,一定程度上解决了C#中的函数只能有...点击进入阅读全文

运算符重载允许为运算指定用户定义的运算符实现,其中一个或两个操作数是用户定义的类或结构类型。用户定义的运算符实现的优先级总是高于预定义运算符实现:仅当没有适用的用户定义运算符实现时才会考虑预定义运算符实现。
运算符可重载性
+、-、!、~、++、--、true、fals可以重载这些一元运算符。true和false运算符必须成对重载。
+、-、*、/、%、&、|可以重载这些二元运算符。
==、!=、<、&...
点击进入阅读全文