溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#中怎么使用自定義數(shù)據(jù)

發(fā)布時(shí)間:2021-07-19 15:44:07 來(lái)源:億速云 閱讀:214 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了C#中怎么使用自定義數(shù)據(jù),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

C#語(yǔ)言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#自定義數(shù)據(jù),包括介紹每一個(gè)由DBObject派生的對(duì)象都擁有存儲(chǔ)C#自定義數(shù)據(jù)的擴(kuò)展字典等方面。

我們將創(chuàng)建一個(gè)新的字典對(duì)象,它用來(lái)表示我們雇員就職的 ‘Acme 公司‘(呵呵,當(dāng)然是虛構(gòu)的一家公司)的部門。這個(gè)“部門”字典對(duì)象將包含一個(gè)表示部門經(jīng)理的記錄。我們還會(huì)加入代碼到雇員創(chuàng)建過(guò)程,這個(gè)過(guò)程會(huì)加入一個(gè)索引到雇員工作的部門。

我們要說(shuō)明的是如何在DWG文件中創(chuàng)建C#自定義數(shù)據(jù),包括“每個(gè)圖形”的C#自定義數(shù)據(jù)和“每個(gè)實(shí)體”的C#自定義數(shù)據(jù)?!懊總€(gè)圖形”的C#自定義數(shù)據(jù)是指只在整個(gè)圖形中加入一次的數(shù)據(jù),它表示對(duì)象可以引用的單一類型或特性?!懊總€(gè)實(shí)體”的C#自定義數(shù)據(jù)是指是為特定的對(duì)象或數(shù)據(jù)庫(kù)中的實(shí)體加入的數(shù)據(jù)。

在下面的示例中,我們將加入“每個(gè)圖形”的C#自定義數(shù)據(jù)到命名對(duì)象字典(簡(jiǎn)稱NOD)。NOD存在于每一個(gè)DWG文件中。“每個(gè)實(shí)體”的C#自定義數(shù)據(jù)加入到一個(gè)名為“擴(kuò)展字典”的字典(可選)中,它表示每一個(gè)雇員。每一個(gè)由DBObject派生的對(duì)象都擁有存儲(chǔ)C#自定義數(shù)據(jù)的擴(kuò)展字典。而在我們的示例中將包含這種C#自定義數(shù)據(jù)如名字、薪水和部門。

因此這一章的重點(diǎn)是字典對(duì)象和擴(kuò)展記錄(XRecord),它們是我們用來(lái)表示C#自定義數(shù)據(jù)的容器。

首先讓我們來(lái)創(chuàng)建表示公司的條目。在本章的前幾個(gè)步驟中,我們將創(chuàng)建如下所示的部門層次結(jié)構(gòu):
◆NOD-命名對(duì)象字典
◆ACME_DIVISION-自定義公司字典
◆銷售(Sales) -部門字典
◆部門經(jīng)理-部門條目

請(qǐng)打開Lab4文件夾下的Lab4工程,或接著Lab3的代碼。

< !--[if !supportLists]-->1) < !--[endif]-->我們首先要做的是定義一個(gè)新的函數(shù),它用來(lái)在命名對(duì)象字典(NOD)中創(chuàng)建公司字典對(duì)象。為這個(gè)函數(shù)取名為 CreateDivision(),,并使用命令屬性來(lái)定義CREATEDIVISION命令。

下面是這個(gè)函數(shù)的代碼,它的形式非常簡(jiǎn)單,只是用來(lái)在NOD中創(chuàng)建一個(gè)ACME_DIVISION(用來(lái)表示公司)

  1. [CommandMethod("CreateDivision")]  

  2. public void CreateDivision()  

  3. {  

  4. Database db = HostApplicationServices.WorkingDatabase;  

  5. Transaction trans = db.TransactionManager.StartTransaction();  

  6. try  

  7. {  

  8. //首先,獲取NOD……  

  9. DBDictionary NOD = (DBDictionary)trans.GetObject
    (db.NamedObjectsDictionaryId, OpenMode.ForWrite);  

  10. //定義一個(gè)公司級(jí)別的字典  

  11. DBDictionary acmeDict;  

  12. try  

  13. {  

  14. //如果ACME_DIVISION不存在,則轉(zhuǎn)到catch塊,這里什么也不做  

  15. acmeDict = (DBDictionary)trans.GetObject(NOD.GetAt("ACME_DIVISION"), OpenMode.ForRead);  

  16. }  

  17. catch  

  18. {  

  19. //如果ACME_DIVISION不存在,則創(chuàng)建它并把它加入到NOD中……  

  20. acmeDict = new DBDictionary();  

  21. NOD.SetAt("ACME_DIVISION", acmeDict);  

  22. trans.AddNewlyCreatedDBObject(acmeDict, true);  

  23. }  

  24. trans.Commit();  

  25. }  

  26. finally  

  27. {  

  28. trans.Dispose();  

  29. }  

上述內(nèi)容就是C#中怎么使用自定義數(shù)據(jù),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI