精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#.NET教程: 創建我們自己的Employee對象

開發 后端
本文繼續C#.NET教程,即創建我們自己的Employee對象的講解。

在本文中,我們將創建一個‘Employee 對象’(包括一個圓,一個橢圓和一個多行文本對象),這個對象屬于一個自定義的EmployeeBlock’塊(這個塊駐留在‘EmployeeLayer’層,當在模型空間插入這個塊的時候,‘EmployeeLayer’層就會擁有這個塊的一個塊索引)。本章的每一個步驟中的代碼都可以運行,這樣做的目的可以使你更清楚地知道每一部分代碼完成的功能。第一步將簡要說明一下如何在模型空間創建一個圓。

在模型空間創建一個圓 

這一章的重點是在AutoCAD中訪問數據庫的基礎。主要內容包括事務處理(Transaction)、對象Id(ObjectId)、符號表(symbol tables,如塊表BlockTable和層表LayerTable)以及對象引用。使用的其它一些對象如顏色Color、三維點Point3d和三維向量Vector3d,都和各自的步驟有關,但重點應該放在數據庫基礎上。

1) 創建一個名為‘CREATE’的命令,它調用函數CreateEmployee()。這個函數用來在模型空間(MODELSPACE)的(10,10,0)點處創建一個半徑為2.0的圓:

  1. [CommandMethod("test")]  
  2.  
  3. public void createCircle()  
  4.  
  5. {  
  6.  
  7. //首先聲明我們要使用的對象  
  8.  
  9. Circle circle; //這個是我們要加入到模型空間的圓  
  10.  
  11. BlockTableRecord btr;//要加入圓,我們必須打開模型空間  
  12.  
  13. BlockTable bt; //要打開模型空間,我們必須通過塊表(BlockTable)來訪問它  
  14.  
  15. //我們使用一個名為‘Transaction’的對象,把函數中有關數據庫的操作封裝起來  
  16.  
  17. Transaction trans;  
  18.  
  19. //使用TransactionManager的StartTransaction()成員來開始事務處理  
  20.  
  21. trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction();  
  22.  
  23. //現在創建圓……請仔細看這些參數——注意創建Point3d對象的‘New’和Vector3d的靜態成員ZAxis  
  24.  
  25. circle = new Circle(new Point3d(10, 10, 0), Vector3d.ZAxis, 2);  
  26.  
  27. bt = (BlockTable)trans.GetObject(HostApplicationServices.WorkingDatabase.BlockTableId, OpenMode.ForRead);  
  28.  
  29. //使用當前的空間Id來獲取塊表記錄——注意我們是打開它用來寫入  
  30.  
  31. btr = (BlockTableRecord)trans.GetObject(HostApplicationServices.WorkingDatabase.CurrentSpaceId,OpenMode.ForWrite );  
  32.  
  33. //現在使用btr對象來加入圓  
  34.  
  35. btr.AppendEntity(circle);  
  36.  
  37. trans.AddNewlyCreatedDBObject(circle, true); //并確定事務處理知道要加入圓!  
  38.  
  39. //一旦完成以上操作,我們就提交事務處理,這樣以上所做的改變就被保存了……  
  40.  
  41. trans.Commit();  
  42.  
  43. //…然后銷毀事務處理,因為我們已經完成了相關的操作(事務處理不是數據庫駐留對象,可以銷毀)  
  44.  
  45. trans.Dispose();  
  46.  

請仔細閱讀一下上面的代碼塊的結構,可以通過注釋來了解相關的細節。

注意:要編譯代碼,你必須導入Autodesk.AutoCAD.DatabaseServices 和Autodesk.AutoCAD.Geometry命名空間

運行這個函數來看看它是否可行。應該會在圖形中創建一個在(10,10,0)處的半徑為2.0的白色的圓。

2) 我們可以減少代碼的輸入量,這可以通過聲明一個Database變量代替HostApplicationServices.WorkingDatabase來實現:

  1. Database db = HostApplicationServices.WorkingDatabase; 

使用這個變量來代替在代碼中出現的HostApplicationServices.WorkingDatabase。

3) 在上面的代碼中,我們沒有使用任何異常處理,而異常處理對一個正確的.NET應用程序來說是非常重要的。我們要養成使用異常處理的好習慣,所以讓我們在這個函數中加入try-catch-finally。

4) 為了使代碼緊湊,我們可以把許多變量的聲明和初始化放在同一個語句中。現在,你的代碼看起來應該是這樣的:

  1. [CommandMethod("CREATE")]  
  2.  
  3. public void CREATEEMPLOYEE()  
  4.  
  5. {  
  6.  
  7. Database db = HostApplicationServices.WorkingDatabase;  
  8.  
  9. Transaction trans = db.TransactionManager.StartTransaction();  
  10.  
  11. try 
  12.  
  13. {  
  14.  
  15. Circle circle = new Circle(new Point3d(10, 10, 0), Vector3d.ZAxis, 2);  
  16.  
  17. BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);  
  18.  
  19. BlockTableRecord btr = (BlockTableRecord)trans.GetObject(HostApplicationServices.WorkingDatabase.CurrentSpaceId,OpenMode.ForWrite);  
  20.  
  21. btr.AppendEntity(circle);  
  22.  
  23. trans.AddNewlyCreatedDBObject(circle, true);  
  24.  
  25. trans.Commit();  
  26.  
  27. }  
  28.  
  29. catch 
  30.  
  31. {  
  32.  
  33. ed.WriteMessage("Error ");  
  34.  
  35. }  
  36.  
  37. finally 
  38.  
  39. {  
  40.  
  41. trans.Dispose();  
  42.  
  43. }  
  44.  
  45. }  
  46.  
  47. End Function 

運行你的代碼來進行測試……

上面的catch塊只顯示一個錯誤信息。實際的清理工作是在finally塊中進行的。這樣做的理由是如果在事務處理被提交(Commit())之前,Dispose()被調用的話,事務處理會被銷毀。我們認為如果在trans.Commit()之前出現任何錯誤的話,你應該銷毀事務處理(因為Commit將永遠不會被調用)。如果在Dispose()之前調用了Commit(),也就是說沒有任何錯誤發生,那么事務處理將會被提交給數據庫。

所以基于上面的分析,Catch塊其實并不是必須的,因為它只用來通知用戶程序出現了一個錯誤。它將在下面的代碼中被去掉。

5) 現在讓我們在Employee對象加入剩下的部分:橢圓和多行文本的實例。

多行文本實體:

中心點應該與圓心的創建一樣:

(建議:創建一個名為‘center’而值為10,10,0的Point3d變量來表示中心點)

多行文本的內容可以是你的名字。

橢圓(提示:你可以先看一下Ellipse的構造函數)

法向量應該沿著Z軸(請查看Vector3d類型)

主軸設為Vector3d(3,0,0)(提示:不要忘了用new)

半徑比例設為0.5

橢圓還必須閉合(也就是說,開始和結束點必須相同)

運行你的代碼來進行測試……應該可以生成一個圓、一個橢圓和一個中心點在10,10,0的多行文本。

注意:和事務處理對象有關的.NET API中的Try-Catch-Finally塊結構,應該是異常觀察者。實際上我們是在try塊中實例化對象的,但沒有顯式地銷毀它們。當產生異常的時候可能會產生問題,特別是當觀察者注意到我們實際上用的是封裝的非托管對象!記住,當資源不再使用的時候,垃圾收集機制就會回收內存。垃圾收集機制會不時的調用封裝類的Dispose()方法,刪除非托管對象。

這里還要注意的是Dispose()作用于封裝的非托管類對象的方式取決于對象是否是數據庫駐留對象。由非數據庫駐留對象調用的Dispose()會刪除非托管對象,而由數據庫駐留對象調用的Dispose()只是關閉它們。

6) 接下來讓我們來創建一個新的函數,它用來新建一個顏色為黃色,名字為“EmployeeLayer” 的AutoCAD層。

這個函數應該檢查是否這個層已經存在,但不管這個層是否存在,函數都應該返回“EmployeeLayer”的ObjectId。下面是這個函數的代碼:

  1. public ObjectId CreateLayer()  
  2.  
  3. {  
  4.  
  5. ObjectId layerId; //它返回函數的值  
  6.  
  7. Database db = HostApplicationServices.WorkingDatabase;  
  8.  
  9. Transaction trans = db.TransactionManager.StartTransaction();  
  10.  
  11. //首先取得層表……  
  12.  
  13. LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForWrite);  
  14.  
  15. //檢查EmployeeLayer層是否存在……  
  16.  
  17. if (lt.Has("EmployeeLayer"))  
  18.  
  19. {  
  20.  
  21. layerId = lt["EmployeeLayer"];  
  22.  
  23. }  
  24.  
  25. else 
  26.  
  27. {  
  28.  
  29. //如果EmployeeLayer層不存在,就創建它  
  30.  
  31. LayerTableRecord ltr = new LayerTableRecord();  
  32.  
  33. ltr.Name = "EmployeeLayer"//設置層的名字  
  34.  
  35. ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 2);  
  36.  
  37. layerId = lt.Add(ltr);  
  38.  
  39. trans.AddNewlyCreatedDBObject(ltr, true);  
  40.  
  41. }  
  42.  
  43.  
  44.  
  45. trans.Commit();  
  46.  
  47. trans.Dispose();  
  48.  
  49. return layerId;  
  50.  

是不是覺得這個函數的基本結構與在模型空間加入實體的代碼比較類似?訪問數據庫的方法都是這樣的:使用事務處理來獲取數據庫對象,在符號表(模型空間所在的塊表也是符號表之一)中加入實體,然后讓事務處理知道。

7) 在這個函數中加入異常處理,就像在CreateEmployee函數中的一樣。

8) 接下來,改變新建層的顏色。下面是實現的代碼片斷,請把它加入到你的代碼中:

  1. ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 2) 

注意:ColorMethod.ByAci可以讓我們使用AutoCAD ACI顏色索引……這里為2(表示黃色)。

回到CreateEmployee()函數,加入把上面創建的幾個實體設置到EmployeeLayer層的代碼。聲明一個類型為ObjectId的變量,用CreateLayer函數的返回值給它賦值。使用每個實體(文本、圓和橢圓)的LayerId屬性設置它們所在的層。

例如: text.LayerId = empId

運行代碼來查看“EmployeeLayer”層是否已被創建,所有已創建的實體是否都在這一層上(應該顯示為黃色)

10) 現在為各個實體設置不同的顏色,可以使用ColorIndex屬性(ColorIndex屬性表示AutoCAD的顏色)

圓為紅色-1

橢圓為綠色-3

文本為黃色-2

運行代碼,看看實體的顏色是否為設置的值,即使這些實體是在“EmployeeLayer”層上。

11) 接下來,我們要在AutoCAD數據庫中創建一個獨立的塊,然后把它插入到塊表而不是模型空間中。

首先把CreateEmployee函數的名字改為CreateEmployeeDefinition()。

加入以下代碼來創建一個獨立的塊:

  1. BlockTableRecord newBtr = new BlockTableRecord();  
  2.  
  3. newBtr.Name = "EmployeeBlock";  
  4.  
  5. newBtrId = bt.Add(newBtr);  
  6.  
  7. trans.AddNewlyCreatedDBObject(newBtr, true);  

12) 現在,請稍微改動一下加入實體到模型空間的代碼(改為加入塊到塊表中,記得加入前要打開塊表)。

現在運行代碼,然后使用INSERT命令來檢查是否可以正確插入這個塊。

13) 最后,我們要創建一個位于模型空間的塊索引,它表示上面創建的塊的一個實例。這一步留給大家練習。

下面是你要遵循的最基本的步驟:

創建一個名為CreateEmployee新的函數

把命令屬性“CREATE”移動到CreateEmployee()

修改CreateEmployeeDefintion()來返回新創建的塊“EmployeeBlock”的ObjectId,操作的步驟請參考CreateLayer()的作法。

你需要修改CreateEmployeeDefintion()來查看塊表中是否已包含“EmployeeBlock”塊,如果包含這個塊,則返回它的ObjectId(做法與CreateLayer()一樣)。

提示:把‘bt’的聲明語句移動到try塊的頂部,使用BlockTable.Has()方法,把其它的代碼移動到else語句:

  1. try 
  2.  
  3. {  
  4.  
  5. //獲取BlockTable 對象  
  6.  
  7. BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForWrite);  
  8.  
  9. if ((bt.Has("EmployeeBlock")))  
  10.  
  11. {  
  12.  
  13. newBtrId =bt["EmployeeBlock"];  
  14.  
  15. }  
  16.  
  17. else 
  18.  
  19. {  
  20.  
  21. … 

在新創建的CreateEmployee()函數中創建一個新的BlockReference對象,并把它加入到模型空間。提示:我們可以使用CreateEmployeeDefinition()中引用模型空間的代碼,這些代碼在這里不需要了

在CreateEmployee中調用CreateEmployeeDefinition()函數,使上面生成的BlockReference對象的BlockTableRecord()指向CreateEmployeeDefinition()函數。提示:請參考BlockReference的構造函數。

這樣,我們自己的Employee對象就創建完成了。

【編輯推薦】

  1. C#事件和委托的編譯代碼
  2. C#事件的由來
  3. 學習C#委托:將方法綁定到委托
  4. 學習C#委托:將方法作為方法的參數
  5. C# 插件構架實例詳解
責任編輯:book05 來源: 新浪博客
相關推薦

2009-08-19 15:44:09

ObjectARX .

2009-08-31 09:37:09

C# Employee

2011-06-17 15:55:19

ArrayListC#

2009-08-31 09:44:23

C# Employee

2009-08-19 16:05:46

AutoCADEditor類

2009-08-25 13:53:20

C#.NET rege

2009-08-26 14:23:14

C#.Net Fram

2009-08-13 10:35:55

C#.NET操作XML

2009-08-24 16:19:54

C#.NET綁定Off

2009-08-26 10:09:22

C#編碼規范

2009-09-11 11:30:53

Net60C#.NET

2009-08-24 16:30:43

C#.NET綁定Off

2009-08-31 14:45:15

C#.NET多線程應用

2009-04-02 15:21:43

c#IDisposeFinalize

2009-09-01 16:14:05

ArrayList與A

2009-08-28 09:29:02

2023-10-11 14:18:40

C#.Net析構

2009-08-28 14:15:19

SocketVisual C#.N

2011-06-01 15:45:28

實體類序列化

2024-06-11 07:34:58

C#字符串性能
點贊
收藏

51CTO技術棧公眾號

清纯唯美亚洲经典中文字幕| 嫩草精品影院| 影音国产精品| 日韩av一区二区在线| 日韩网址在线观看| 蜜桃视频网站在线观看| 成人性生交大片免费看中文网站| 8x海外华人永久免费日韩内陆视频| 丝袜美腿中文字幕| 99久热在线精品视频观看| 亚洲第一主播视频| 亚洲国产另类久久久精品极度| 国产免费无遮挡| 免费日韩av片| 日韩一中文字幕| 免费日本黄色网址| 国产精品视频一区二区三区| 精品免费在线观看| 超碰免费在线公开| 撸视在线观看免费视频| 国产69精品久久777的优势| 国产福利成人在线| 色播视频在线播放| 在线一区免费| 在线一区二区日韩| 亚洲av成人片色在线观看高潮| 久久福利在线| 色婷婷久久综合| 欧美乱大交xxxxx潮喷l头像| 欧美jizzhd欧美| 国产午夜精品一区二区三区视频 | 日韩视频专区| 黄色av一区二区三区| 精品一区在线看| 国产成人一区二区三区小说| 国产污视频在线观看| 欧美成人69av| 亚洲色图17p| 久久久国产精品无码| 秋霞影院一区| 欧美高清视频一二三区 | 色综合天天色| 欧美视频在线观看 亚洲欧| 亚洲熟妇无码av在线播放| 97在线观看免费观看高清| 99re这里都是精品| 国产精品三区四区| 丰满熟女一区二区三区| 国产激情精品久久久第一区二区| 国产一区在线播放| wwwwww在线观看| 日韩国产欧美一区二区三区| 日本欧美国产在线| www.久久久久久久| 久久人人超碰| 国产精品久久久久久久久久久新郎| 天堂а√在线中文在线新版| 国产视频一区在线观看一区免费| 性视频1819p久久| 亚洲精品国产精品乱码| 国产偷自视频区视频一区二区| 亚洲91av视频| 日韩欧美不卡视频| 亚洲色诱最新| 国产91在线视频| 中文字幕av无码一区二区三区| 男女男精品视频网| 国产欧美日韩专区发布| 亚洲无码久久久久| 国产福利一区二区三区视频 | 窝窝社区一区二区| 亚洲人成毛片在线播放| 一二三四在线观看视频| 91久久久精品国产| 欧美高清激情视频| 日韩精品无码一区二区| 久久成人亚洲| 国产精品入口尤物| 精品国产乱码一区二区三| 成人免费高清在线| 麻豆av一区二区三区| av片在线免费观看| 国产第一精品| 国产亚洲成av人在线观看导航| 欧洲一区二区日韩在线视频观看免费 | 中文字幕精品影院| 亚洲欧美日韩精品| 国产美女高潮视频| 激情91久久| 国产精品久久久久av| av网站在线免费看| 99精品视频中文字幕| 日韩成人av网站| 伊人手机在线| 色婷婷综合久色| 女人高潮一级片| 麻豆成人入口| 久久精品99国产精品酒店日本| 欧洲猛交xxxx乱大交3| 在线视频精品| 成人在线视频网站| 五月婷婷伊人网| 成人免费在线视频观看| 鲁一鲁一鲁一鲁一色| 996久久国产精品线观看| 亚洲精品一区二区三区影院 | 天堂av资源网| 欧美国产激情二区三区 | 丰乳肥臀在线| 欧美日韩国产大片| 人妻无码中文久久久久专区| 亚洲国产一区二区三区在线播放| 性色av一区二区三区免费| 国产精品久久婷婷| 久久精品一区二区三区av| 欧美中文字幕在线观看视频| aaaa欧美| 亚洲品质视频自拍网| 国产稀缺真实呦乱在线| 韩国一区二区三区| 色综合视频二区偷拍在线| 91av久久| 欧美精品一区二区三区蜜臀| 国产wwwwxxxx| 日本vs亚洲vs韩国一区三区| 国内精品视频在线播放| 欧美激情成人动漫| 欧美日韩www| 黄色三级生活片| 免费看的黄色欧美网站| 国产一区二区不卡视频| 中文字幕伦理免费在线视频 | 插我舔内射18免费视频| 亚洲欧美色图| 国产综合香蕉五月婷在线| 久久精品国产亚洲a∨麻豆| 亚洲一二三四在线| 人妻精品久久久久中文字幕69| 欧美oldwomenvideos| 国产精品久久久久av免费| 欧美套图亚洲一区| 欧美视频在线视频| 国产精品无码电影| 中文国产一区| 精品一区国产| 日韩电影毛片| 日韩高清欧美高清| 日韩在线视频免费播放| av色综合久久天堂av综合| 日本午夜激情视频| 黄色欧美网站| 91高清免费视频| 欧洲亚洲在线| 日韩欧美在线免费| 一级黄色性视频| 奇米精品一区二区三区在线观看 | 6080日韩午夜伦伦午夜伦| 欧美成人久久久免费播放| 蜜臀国产一区二区三区在线播放| 日韩欧美第二区在线观看| 吞精囗交69激情欧美| 国产一区二区三区日韩欧美| 中文字幕免费视频观看| 国产精品高潮呻吟| 91亚洲一区二区| 午夜视频精品| 国产成人一区二区三区免费看| av白虎一区| 亚洲毛片一区二区| 最近中文字幕在线免费观看| 最新日韩av在线| 不许穿内裤随时挨c调教h苏绵| 韩国av一区| 欧美精品在线一区| 久久精品国产精品亚洲毛片| 欧美成人合集magnet| 日韩中文字幕免费观看| 一本色道a无线码一区v| 免费一级suv好看的国产网站 | 真人bbbbbbbbb毛片| 麻豆亚洲精品| www.亚洲一区二区| 精品精品精品| 国产精品日韩在线观看| 18+视频在线观看| 亚洲精品xxxx| 亚洲熟妇无码久久精品| 亚洲综合av网| 亚洲а∨天堂久久精品2021| 国产一区久久久| 国产精品秘入口18禁麻豆免会员| 日本午夜一区| 91av一区二区三区| 成人做爰视频www网站小优视频| 精品久久国产精品| 色偷偷在线观看| 精品视频全国免费看| 国产性70yerg老太| 国产日韩欧美精品在线| 成人做爰69片免费| 日韩电影免费在线| 精品人妻少妇一区二区| 日韩欧美自拍| 国产欧美日韩伦理| 四虎成人精品一区二区免费网站| 97在线观看视频国产| 免费黄色在线观看| 亚洲区中文字幕| 亚洲女人18毛片水真多| 欧美三级三级三级爽爽爽| 国产成人精品亚洲男人的天堂| 国产精品国产馆在线真实露脸| 国产精品久久久久久亚洲色| 精品在线一区二区| 人妻熟女一二三区夜夜爱| 欧美成人69| 中文字幕日韩一区二区三区| 欧洲亚洲视频| 丁香五月网久久综合| 午夜不卡一区| 国产精品福利在线观看网址| 成年女人在线看片| 欧美日韩高清区| 免费日本一区二区三区视频| 一本色道久久88综合日韩精品| 日韩一级中文字幕| 精品久久久久久无| 99热这里只有精品3| 欧美日韩黄色一区二区| jizz国产在线| 色综合视频一区二区三区高清| 九九视频免费在线观看| 亚洲人成电影网站色mp4| 四虎影视一区二区| 欧美精彩视频一区二区三区| 色婷婷在线影院| 99国产精品国产精品久久| 日本一卡二卡在线| 成人福利在线看| 影音先锋资源av| 国产成人日日夜夜| 亚洲av无码久久精品色欲| 国产资源精品在线观看| 天天干天天色天天干| 久久狠狠亚洲综合| 色www免费视频| 久久精品国产精品青草| 成 人 黄 色 小说网站 s色| 蜜桃av噜噜一区| 91国内在线播放| 国产自产v一区二区三区c| 日本黄色www| 国产精品中文有码| 亚洲少妇一区二区| 成人一区二区三区在线观看| 中文字幕天堂av| 成av人片一区二区| 亚洲精品理论片| 久久先锋影音av鲁色资源| 亚洲成人黄色av| 国产精品久久久久一区二区三区共 | 亚洲图片视频小说| 9191成人精品久久| 精品久久国产视频| 亚洲第一天堂av| 精品美女视频在线观看免费软件| 亚洲性av网站| 免费高清完整在线观看| 久久久久久久久久国产| 丁香高清在线观看完整电影视频| 中文字幕一区二区av| 中文欧美字幕免费| 97在线看福利| jizzzz日本| 精品国产欧美日韩一区二区三区| 97香蕉久久夜色精品国产| 吉吉日韩欧美| 国产精品自拍偷拍| 免费精品一区| 久久国产精品久久| 三级福利片在线观看| 偷拍亚洲欧洲综合| 中文在线第一页| 91超碰这里只有精品国产| 黄色成人免费看| a国产在线视频| 国语自产在线不卡| 日韩精品一区二区三区av| 91久久精品视频| 蜜桃一区av| 亚洲乱码一区二区三区| 狠狠色丁香久久综合频道| 久久精品99国产| 国产精品亚洲一区二区三区妖精| 国产 中文 字幕 日韩 在线| 国产精品第五页| 国产女同在线观看| 555www色欧美视频| 日韩国产福利| 欧美成人免费一级人片100| 伊人久久国产| 99在线观看| 成人久久电影| 日韩欧美一区二| 国产美女在线观看一区| 无码h肉动漫在线观看| 一区二区三区在线观看网站| 国产第一页在线观看| 亚洲缚视频在线观看| 乱人伦中文视频在线| 日产精品99久久久久久| 国产一区二区三区国产精品| 成人午夜大片免费观看| 中国免费黄色片| 亚洲日本青草视频在线怡红院| 97久久久久久久| 日韩一级片网址| av网站无病毒在线| 欧美亚洲一级片| 福利欧美精品在线| 九九久久九九久久| 激情综合色播五月| 免费观看a级片| 色视频成人在线观看免| 五月天婷婷视频| 久久久人成影片一区二区三区观看 | 亚洲少妇30p| 在线视频精品免费| 亚洲欧美综合图区| 亚洲国产福利| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 欧美一级艳片视频免费观看| 日本三级在线视频| 国产精品男人爽免费视频1| 亚州av日韩av| 国产亚洲天堂网| 91蜜桃视频在线| 国产特黄大片aaaa毛片| 欧美va日韩va| 欧美一卡二卡| 国产成人成网站在线播放青青| 欧美日韩中文| 特种兵之深入敌后| 一区二区三区在线观看欧美| 国产成年妇视频| 欧美精品少妇videofree| 欧美久久一区二区三区| 国产在线拍揄自揄拍无码| 久久精品久久久精品美女| 亚洲精品卡一卡二| 欧美一区二区视频免费观看| 国产黄色在线网站| 2022国产精品| 一区免费视频| 亚洲欧美日本一区| 狠狠躁天天躁日日躁欧美| 日产精品久久久久久久性色| 欧美一级大片在线观看| 精品中文字幕一区二区三区av| 欧美两根一起进3p做受视频| 国产丝袜欧美中文另类| 一区二区精品视频在线观看| 麻豆成人在线看| 国产精品乱战久久久| av观看免费在线| 欧美韩国一区二区| 国产强被迫伦姧在线观看无码| 九九久久精品一区| 日韩影视高清在线观看| 色七七在线观看| 国产精品久久久久久久岛一牛影视 | 91香蕉一区二区三区在线观看| 91精品国产一区二区三区蜜臀| 调教一区二区| 久久久久一区二区| 日本不卡在线视频| 国产这里有精品| 日韩高清av在线| 欧洲亚洲精品久久久久| 激情五月婷婷六月| 国产亚洲自拍一区| 国产精品久久免费| 2019国产精品自在线拍国产不卡| 精品理论电影在线| 超级砰砰砰97免费观看最新一期| 亚洲成人av一区二区三区| www免费网站在线观看| 99re在线国产| 日本中文字幕一区二区有限公司| 精品无码久久久久成人漫画| 日韩精品在线观看视频| 欧美亚洲综合视频| 日韩av黄色网址| 最新久久zyz资源站| 天堂中文在线8| 91久热免费在线视频| 羞羞答答国产精品www一本 | 欧美日韩久久久久| 欧美jizz18性欧美| 欧美性天天影院|