C# Employee对象概述

游离丸子 2009-08-31

C#语言还是比较常见的东西,这里我们主要介绍C# Employee对象,包括介绍在AutoCAD程序的开发中经常碰到这种类型转化等方面。

C# Employee对象

我们将创建一个函数来遍历模型空间,以用来查找加入的C# Employee对象(这里其实是块索引)的数目。在VB.NET 或C#中,我们可以把模型空间块表记录(ModelSpace BlockTableRecord)当作一个集合,这样就可以使用For Each(C#是foreach)来遍历它。请仔细研究一下下面的代码片断:

VB.NET:

Dim id As ObjectId ‘ 首先,定义一个For循环要使用的ObjectId变量。  


For Each id In btr  



Dim ent As Entity = trans.GetObject(id, OpenMode.ForRead, False) '打开当前的对象!  

C#:

foreach (ObjectId id in btr)  


{  



Entity ent = (Entity)trans.GetObject(id, OpenMode.ForRead, false);   



//打开当前的对象!  

一旦我们获得模型空间对象,你们就可以定义一个ObjectId变量,然后把它用于For Each循环(C#是foreach)。

现在,我们需要使用一些方法来筛选雇员。我们知道模型空间中的对象都是实体,但不全是雇员。我们需要使用一些方法来加以区分。在这里,我们可以使用VB.NET的TypeOf关键字并用CType进行类型转换(C#是GetType函数和typeof):

VB.NET:

If TypeOf ent Is BlockReference Then  



Dim br As BlockReference = CType(ent, BlockReference)  



…  

C#:

If(ent.GetType() == typeof(BlockReference))  



BlockReference br = (BlockReference)ent;  

上面讲的概念对于AutoCAD编程是很重要的,因为容器对象经常包含不同类型的对象。你会在AutoCAD程序的开发中经常碰到这种类型转化。

请定义一个名为EmployeeCount()的函数,函数的结构如上所示,它用来统计模型空间中的块索引的数目。这个函数不会输出任何东西,但你可以使用逐步调试程序来查看整数变量的增加(每发现一个块索引对象)。

接下来,为了把结果输出到命令行,我们需要使用Application.DocumentManager.MdiActiveDocument.Editor对象的服务。要使用它,请加入下面的代码:

Imports Autodesk.AutoCAD.EditorInput  


Imports Autodesk.AutoCAD.ApplicationServices  

在函数的内部:

Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;  

相关推荐