您好,登錄后才能下訂單哦!
本篇文章為大家展示了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)表示公司)
[CommandMethod("CreateDivision")]
public void CreateDivision()
{
Database db = HostApplicationServices.WorkingDatabase;
Transaction trans = db.TransactionManager.StartTransaction();
try
{
//首先,獲取NOD……
DBDictionary NOD = (DBDictionary)trans.GetObject
(db.NamedObjectsDictionaryId, OpenMode.ForWrite);//定義一個(gè)公司級(jí)別的字典
DBDictionary acmeDict;
try
{
//如果ACME_DIVISION不存在,則轉(zhuǎn)到catch塊,這里什么也不做
acmeDict = (DBDictionary)trans.GetObject(NOD.GetAt("ACME_DIVISION"), OpenMode.ForRead);
}
catch
{
//如果ACME_DIVISION不存在,則創(chuàng)建它并把它加入到NOD中……
acmeDict = new DBDictionary();
NOD.SetAt("ACME_DIVISION", acmeDict);
trans.AddNewlyCreatedDBObject(acmeDict, true);
}
trans.Commit();
}
finally
{
trans.Dispose();
}
}
上述內(nèi)容就是C#中怎么使用自定義數(shù)據(jù),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。