C#入门经典第十一章

原创 2012年03月31日 13:58:24

第11章   集合、比较和转换

11.1集合

强类型化的:使用时不需要把他们转换为正确的类型

System.Collections

IEnumerable:可以迭代集合中的项

ICollection:可以获取集合中项的个数

IList:提供了集合的列表项

IDictionary:提供了可通过键码值访问的项列表。

11.1.2定义集合

public class Animals:CollectionBase

{

Public void Add(Animal newAnimal)

{

List.Add(newAnimal);

}

 

}

11.1.3索引符

public class Animals:CollectionBase

{

Public Animal this[]

{

Get

{

Return (Animal)List[animalIndex];

}

Set

{

List[animalIndex]=Value;

}

}

 

}

11.1.5关键字值集合和IDictionary

public class Animals:DictionaryBase

{

Public void Add(string newID,AnimalnewAnimal)

{

Dictionary.Add(newID,newAnimal);

}

Public void Remove(string newID,Animal newAnimal)

{

Dictionary.Remove(newAnimal);

}

 

Public Animal this[string animalID]

{

Get

{

Return (Animal)Dictionary[animalID];

}

Set

{

Dictionary[animalID]=value;

}

}

}

Foreach(DictionaryEntry myEntry inanimalCollection)

{

Console.WriteLine(“”,myEntry.Value.ToString(),((Animal)myEntry.Value).Name);

}

 

11.1.6迭代器(IEnumerable)

Foreach循环

(1)   调用collectionObject.GetEnumerator(),返回一个IEnumerator引用,这个方法可以通过IEnumerable接口的实现代码来获得,但这是可选的。

(2)   调用所返回的IEnumerator接口的MoveNext()方法

(3)   如果MoveNext()方法返回true,就是用IEnumerator接口的Current属性获取对象的一个引用,用于foreach循环。

(4)   重复前面两步,直到MoveNext()方法返回false为止,此时循环停止。

迭代器返回的类型可能是IEnumerable和IEnumerator

(1)   如果要迭代一个类,可使用GetEnumerator(),返回类型是IEnumerator

(2)   如果要迭代一个类成员,例如一个方法,使用IEnumerable。

在迭代器中,使用yield关键字选择要在foreach循环中使用的值

Yield return value; yield break; 退出foreach

11.1.7深度复制

ICloneable

Public object Clone()

11.2比较

11.2.1类型比较

     1.封箱和拆箱

     封箱(boxing)是把值类型转换为System.Object类型,或者转换为由值类型实现的接口类型。

     拆箱(unboxing)是相反的转换过程

     ObjectrefType=valType1;

     它允许使用集合中的值类型,集合中项的类型是object。其次,允许在值类型上调用object。

2.  is运算符

<operand>is <type>

11.2.2值比较

可以使用运算符重载,或者使用IComparable和IComparer接口

1.  运算符重载(operatoroverloading)

Public static AddClass1 operator +(AddClass1 op1,AddClass1op2)

{}

2.  IComparable和IComparer接口

IComparable:在要比较的对象的类中实现,可以比较该对象和另一个对象 CompareTo

IComparer在一个单独的类中实现,可以比较任意两个对象 Compare

11.3转换

public static implicit(explicit)operator ConvClass2(ConvClass1 op1)

as

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++入门经典 笔记 (第十一章)开发高级指针

前面一章讲到怎样在堆中分配内存,这一章主要讲怎样在堆中创建对象(实例化类的对象),其原理是一样的,同样是利用关键字new,delete。如: 当定义了类型Cat后,便可声明一个指向这种对象的指针,并...

阅读《C# 2012数据库编程入门经典(第5版)》

快速略读了一遍,从早上到下午,太快了。 刚做完的信息管理系统用过sqlServer和C#的应用,所以看起来比较快,遇到后面的图像存储,linq,实体等都是模糊的看了下。 下面是目录 ...

关于《C#入门经典》的读后总结

读后总结以及知识点的通俗化解释,还有自己容易忽略的部分的记录

《C#入门经典v6》读书笔记5 WCF&WWF

WCF结合了Web服务+远程技术,是应用程序之间进行通信的通用基础结构,比Web服务强大,比远程技术更易于掌握。由于暂时没有用到WWF的地方,暂不做深入研究,主要了解下WWF是什么,有什么用。

C#入门经典第十四章

第14章   C#3.0语言的改进 发明者:Anders Hejlsberg 已介绍给过的C#3.0新功能:自动属性和部分方法。 14.1初始化器 14.1.1对象初始化器:需要类有默认的公共...

C#入门经典学习11-集合比较转换

C#入门经典学习11-集合比较转换 C#中的数组是System.Array类的实例 IEnumerable ICollection IList IDictionary System.Arr...

C#入门经典 学习笔记(一)

(1).NET Framework:  .NET 框架。其包含类库和公共语言运行库。类库分为不同的模块,不同的操作系统可以根据自身的特性支持其中或全部的模块。 (2)CTS(Common Type...

《C#入门经典v6》读书笔记2 Windows编程

第15章 基本桌面编程GUI(Graphical User Interface,图形用户界面) 第16章 高级桌面编程 第17章 Windows Store应用程序 第18章 部署桌面应用程序

C#自学快速入门经典笔记心得

**页的发展包括CGI、脚本语言、组件技术三个阶段   .NET框架由以下五部分组成 1、 程序设计语言及公共语言规范(CLS) 2、 应用程序平台(ASP.ENT及Windows) 3、 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)