C# Employee對象概述
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;
***,在循環的后面確定找到了多少個塊索引:
- ed.WriteMessage("Employees Found: " + nEmployeeCount.ToString());
【編輯推薦】