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

C#和VB.NET類型相關(guān)知識(shí)匯總

開發(fā) 后端
本文綜合一些C#和VB.NET類型相關(guān)的方法和關(guān)鍵字,初學(xué)者剛開始理解可能會(huì)有點(diǎn)混亂,這里整理一下,希望對(duì)初學(xué)者有所幫助。

1.GetType

(1)Object.GetType()

該方法是所有對(duì)象都有的方法,MSDN中的解釋是“獲取當(dāng)前實(shí)例的 Type。”。該方法的返回值是System.Type類型的實(shí)例,表示當(dāng)前實(shí)例的確切運(yùn)行時(shí)類型。

例如:

  1. C#:
  2. int number = 3;
  3. System.Type t = number.GetType();
  4. Console.WriteLine(t.FullName); //輸出:System.Int32
  5. VB.NET:
  6. Dim number as Integer = 3
  7. Dim t As System.Type = number.GetType()
  8. Console.WriteLine(t.FullName) '輸出:System.Int32

(2)VB.NET類型中的GetType方法

參考MSDN中的解釋:返回指定類型的 Type 對(duì)象。Type 對(duì)象提供有關(guān)類型的信息,如類型的屬性、方法和事件。

用法:GetType(typename),其中typename需要獲取其信息的類型的名稱

例如:

  1. Dim t As System.Type = GetType(Integer)
  2. Console.WriteLine(t.FullName) '輸出:System.Int32

(3)Type.GetType系列方法

System.Type類型中的GetType方法一共有4個(gè),其中不帶參數(shù)的GetType()是繼承自Object的實(shí)例方法,其他三個(gè)是靜態(tài)方法(C#中為static,VB.NET中為Shared)。實(shí)例方法不用介紹了,就是Object.GetType()。靜態(tài)方法是通過類型名稱的字符串獲取System.Type。MSDN中的解釋有一大篇,這里只給出簡(jiǎn)單示例:

  1. C#:
  2. System.Type t = Type.GetType("System.Int32");
  3. Console.WriteLine(t.FullName); //輸出:System.Int32
  4. VB.NET
  5. Dim t As System.Type = Type.GetType("System.Int32");
  6. Console.WriteLine(t.FullName) '輸出:System.Int32

注意這里的類型名稱必須是包含命名空間的全名,即System.Type的FullName,不能是C#或者VB.NET中的類型名稱,如C#中的"int"或者VB.NET中的"Integer"

2.typeof

C#VB.NET類型中都有typeof關(guān)鍵字,但它們的用法卻不一樣。

C#typeof相當(dāng)于VB.NET中的GetType,用于獲取指定類型的 Type 對(duì)象

用法

  1. System.Type t = typeof(int);
  2. Console.WriteLine(t.FullName); //輸出:System.Int32

VB.NET類型中的TypeOf則總是與Is關(guān)鍵字一起用于構(gòu)造TypeOf…Is表達(dá)式。MSDN中對(duì)該關(guān)鍵字的解釋是:比較對(duì)象引用變量與數(shù)據(jù)類型。需要注意的是該表達(dá)式只能針對(duì)引用類型,如果把下面的示例中的i聲明為Integer則會(huì)出錯(cuò)。

VB.NET用法:

  1. Dim i As Object = 2
  2. Console.WriteLine(TypeOf i Is Integer) '輸出:True
  3. Console.WriteLine(Typeof i Is Double) '輸出:False

3.is

在C#和VB.NET類型中也都存在is關(guān)鍵字,當(dāng)然它們的用法也不一樣。

C#中is 的作用是:檢查對(duì)象是否與給定類型兼容。它執(zhí)行的是類型比較。MSDN中的備注:如果所提供的表達(dá)式非空,并且所提供的對(duì)象可以強(qiáng)制轉(zhuǎn)換為所提供的類型而不會(huì)導(dǎo)致引發(fā)異常,則 is 表達(dá)式的計(jì)算結(jié)果將是 true。請(qǐng)注意,is 運(yùn)算符只考慮引用轉(zhuǎn)換、裝箱轉(zhuǎn)換和取消裝箱轉(zhuǎn)換。不考慮其他轉(zhuǎn)換,如用戶定義的轉(zhuǎn)換。

可以認(rèn)為C#中的is 相當(dāng)于VB.NET中的TypeOf…Is

用法:

  1. int i = 2;
  2. Console.WriteLine(i is int); //輸出:True
  3. Console.WriteLine(i is double); //輸出:False

VB.NET中Is 的作用是:比較兩個(gè)對(duì)象引用變量。MSDN中的備注:Is 運(yùn)算符確定兩個(gè)對(duì)象引用是否引用同一個(gè)對(duì)象。但是,它不執(zhí)行值比較。如果 object1 和 object2 引用同一個(gè)對(duì)象實(shí)例,則 result 為 True;如果它們不引用同一個(gè)對(duì)象,則 result 為 False該運(yùn)算符和TypeOf…Is一樣,也只適用于引用類型。

用法:

  1. Dim i As String = "Hello"
  2. Dim j AS String = "Hello"
  3. Dim k as String = "Hello world"
  4. Console.WriteLine(i Is j) '輸出:True
  5. Console.WriteLine(i Is k) '輸出:False
  6. k = j
  7. Console.WriteLine(i Is k) '輸出:True

4.as

同樣C#和VB.NET類型里面都存在as,用法也不一樣。

C#as 的作用是:as 運(yùn)算符用于在兼容的引用類型之間執(zhí)行轉(zhuǎn)換as 運(yùn)算符類似于強(qiáng)制轉(zhuǎn)換操作。但是,如果無(wú)法進(jìn)行轉(zhuǎn)換,則 as 返回 null 而非引發(fā)異常。

expression as type 等效于 expression is type ? (type)expression : (type)null

用法:

  1. string s = someObject as string;
  2. If(s != null)
  3. Console.WriteLine("someObject is a string");

VB.NET中As 的作用是:引入 As 子句,該子句標(biāo)識(shí)聲明語(yǔ)句中的數(shù)據(jù)類型或泛型類型參數(shù)中的約束列表。

在VB.NET中這個(gè)關(guān)鍵字太常見了,就不需要過多解釋。

用法:

  1. Private i As Integer = 3 '聲明字段
  2. Dim j As String = "hello" '聲明變量
  3. Sub Test(ByVal k As Boolean) '聲明參數(shù)
  4. Public Class MyClass(Of T As {IComparable, IDisposable, Class, New}) '泛型類型約束

5.類型轉(zhuǎn)換

類型轉(zhuǎn)換是在編程過程中經(jīng)常會(huì)遇到的。在這兩種語(yǔ)言中,有共同的方法,也有各自特有的方法。

共同的方法是Convert類的使用,因?yàn)?/SPAN>Convert類是System命名空間中的。該類中包含了各種常見類型的轉(zhuǎn)換方法,比如ToInt32, ToSingle, ToBoolean等,這些方法的返回值就是需要的類型,不需要經(jīng)過轉(zhuǎn)換。Convert類中通用的類型轉(zhuǎn)換方法是ChangeType,該方法返回具有指定類型而且其值等效于指定對(duì)象的Object,這時(shí)候就需要對(duì)返回值進(jìn)行顯示轉(zhuǎn)換了。

  1. C#:
  2. double d = 1.234
  3. int i = (int)Convert.ChangeType(d,typeof(int));
  4. VB.NET:
  5. Dim d As Double = 1.234
  6. Dim i As Integer = CInt(Convert.ChangeType(d,GetType(Integer)))

關(guān)于顯式轉(zhuǎn)換

C#中的顯式轉(zhuǎn)換的格式是(type)expression

用法:

  1. double d = 1.234
  2. int i = (int)d;

VB.NET中顯式轉(zhuǎn)換的格式是CType(expression,type)。MSDN中關(guān)于CType的解釋:CType 是一個(gè)“內(nèi)聯(lián)函數(shù)”,這意味著轉(zhuǎn)換是由已編譯的代碼執(zhí)行的,通常不會(huì)生成函數(shù)調(diào)用。這將提高性能。

用法:

  1. Dim d As Double = 1.234
  2. Dim i As Integer = CType(d, Integer)

VB.NET中還有一系列函數(shù)與CType函數(shù)同屬于Conversion函數(shù),例如CBool, CInt, CString, Hex, Format, Val等等,這些函數(shù)都是內(nèi)聯(lián)函數(shù),具體的用法可以參考MSDN。

另外在VB.NET中還包含兩個(gè)特殊的轉(zhuǎn)換方法,DirectCastTryCast。這兩個(gè)方法和CType的用法一樣,它們的區(qū)別見下表。

關(guān)鍵字

數(shù)據(jù)類型

參數(shù)關(guān)系

CType

任何數(shù)據(jù)類型

必須在兩種數(shù)據(jù)類型之間定義擴(kuò)大轉(zhuǎn)換或收縮轉(zhuǎn)換

DirectCast

任何數(shù)據(jù)類型

一個(gè)類型必須繼承或者實(shí)現(xiàn)另一個(gè)類型

TryCast

僅引用類型

一個(gè)類型必須繼承或者實(shí)現(xiàn)另一個(gè)類型

從上表可以看出,VB.NETTryCastC#as作用是一樣的。

DirectCast示例(摘自MSDN):

  1. Dim q As Object = 2.37
  2. Dim i As Integer = CType(q, Integer)
  3. ' The following conversion fails at run time
  4. Dim j As Integer = DirectCast(q, Integer)
  5. Dim f As New System.Windows.Forms.Form
  6. Dim c As System.Windows.Forms.Control
  7. ' The following conversion succeeds.
  8. c = DirectCast(f, System.Windows.Forms.Control)

TryCast示例(摘自MSDN):

  1. Function PrintTypeCode(ByVal obj As Object) As String
  2. Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
  3. If objAsConvertible Is Nothing Then
  4. Return obj.ToString() & " does not implement IConvertible"
  5. Else
  6. Return "Type code is " & objAsConvertible.GetTypeCode()
  7. End If
  8. End Function

6.Parse相關(guān)方法

在很多類型中還存在著一種針對(duì)字符串的類型轉(zhuǎn)換方法,即ParseTryParse。這兩個(gè)方法都是靜態(tài)方法,接受的參數(shù)為字符串,將指定類型的字符串表示形式轉(zhuǎn)換為該類型的等效值。不同的是Parse轉(zhuǎn)換失敗則拋出錯(cuò)誤,而TryParse則可以通過返回的邏輯值值了解轉(zhuǎn)換是否成功。這兩個(gè)方法的用法如下:

  1. C#:
  2. int i = int.Parse("123"); //正確
  3. int j = int.Parse("123.4"); //拋出錯(cuò)誤
  4. int k = 0;
  5. //下面輸出:False_0
  6. Console.WriteLine(int.TryParse("456.7", out k).ToString() + "_" + k.ToString());
  7. //下面輸出:True_789
  8. Console.WriteLine(int.TryParse("789", out k).ToString() + "_" + k.ToString());
  9. VB.NET:
  10. Dim i As IntegerInteger = Integer.Parse("123") '正確
  11. Dim j As IntegerInteger = Integer.Parse("123.4") '拋出錯(cuò)誤
  12. Dim k As Integer = 0
  13. '下面輸出:False_0
  14. Console.WriteLine(Integer.TryParse("456.7", k).ToString() & "_" & k.ToString())
  15. '下面輸出:True_789
  16. Console.WriteLine(Integer.TryParse("789", k).ToString() & "_" & k.ToString())

7.空值的比較

空值在C#中為null,在VB.NET中為Nothing。雖然這兩個(gè)關(guān)鍵字看起來似乎一樣,但它們有所不同。

C#中的解釋:null 是引用類型變量的默認(rèn)值。在C#中判斷變量是否是空值,通過expression == null或者expression != null即可,即使expression是值類型也不會(huì)拋出錯(cuò)誤,不過會(huì)有警告信息。例如下面的代碼:編譯時(shí)會(huì)提示如下警告信息:由于“int”類型的值永不等于“int?”類型的“null”,該表達(dá)式的結(jié)果始終為“false”。

  1. int i = 0;
  2. Console.WriteLine(i == null); //輸出:False
  3. i = null; //錯(cuò)誤

VB.NET中的解釋:Nothing表示任意數(shù)據(jù)類型的默認(rèn)值。將 Nothing 賦給變量將把該變量設(shè)置為其聲明類型的默認(rèn)值。如果該類型包含變量成員,則這些成員都會(huì)設(shè)置為其默認(rèn)值。這里的解釋和C#不一樣,可以是任何數(shù)據(jù)類型,下面的代碼中會(huì)給出驗(yàn)證。VB.NET中判斷變量是否為空值,可以用expression = Nothingexpression <> Nothing expression Is Nothingexpression IsNot Nothing等來判斷。一般值類型用前面兩種,引用類型用后面兩種。編寫如下代碼測(cè)試:

  1. Dim i As Integer = 0
  2. Console.WriteLine(i = Nothing) '輸出:True。可以看出Nothing在此表示0,是Integer的默認(rèn)值。
  3. i = 1
  4. Console.WriteLine(i = Nothing) '輸出:False
  5. i = Nothing
  6. Console.WriteLine(i = Nothing) '輸出:True
  7. Console.WriteLine(i) '輸出:0。再次驗(yàn)證Nothing和0等價(jià)。
  8. 'Console.WriteLine(i Is Nothing) '報(bào)錯(cuò),Is的操作數(shù)必須是引用類型或可為null的類型。
  9. Dim s As String
  10. Console.WriteLine(s & "abc") '輸出:abc
  11. Console.WriteLine(String.IsNullOrEmpty(s)) '輸出:True
  12. Console.WriteLine(s = Nothing) '輸出:True
  13. Console.WriteLine(s Is Nothing) '輸出:True。
  14. s = ""
  15. Console.WriteLine(String.IsNullOrEmpty(s)) '輸出:True
  16. Console.WriteLine(s = Nothing) '輸出:True。Nothing表示String的默認(rèn)值""。
  17. Console.WriteLine(s Is Nothing) '輸出:False。
  18. s = Nothing
  19. Console.WriteLine(String.IsNullOrEmpty(s)) '輸出:True
  20. Console.WriteLine(s = Nothing) '輸出:True
  21. Console.WriteLine(s Is Nothing) '輸出:True
  22. Dim c As SomeClass
  23. '沒有為類型"SomeClass"和"SomeClass"定義運(yùn)算符"="
  24. 'Console.WriteLine(c = Nothing)
  25. Console.WriteLine(c is Nothing) '輸出:True
  26. c = New SomeClass()
  27. Console.WriteLine(c is Nothing) '輸出:False

以上代碼可以看出VB.NET中對(duì)Nothing的處理的特殊之處。通過SharpDevelop轉(zhuǎn)換這些VB.NET代碼成C#代碼,把所有Nothing都轉(zhuǎn)換成null了,VB.NET中的"=""Is"都轉(zhuǎn)換成"==",很顯然代碼無(wú)法通過編譯。通過ReflectorC#模式查看代碼,"=""Is"也都轉(zhuǎn)換成"==",但"i = Nothing"都轉(zhuǎn)換成"i == 0",這才是正確的代碼。可以看出VB.NET的編譯器在背后做了一些轉(zhuǎn)換的工作。

既然VB.NET能夠把Nothing解釋為默認(rèn)值,C#里有沒有一個(gè)獲取默認(rèn)值的功能呢?當(dāng)然有,那就是default。用法是default(typename),比如Console.WriteLine(default(int));這句代碼輸出0。通過Reflector查看,這句代碼被轉(zhuǎn)換成了Console.WriteLine(0);又是編譯器在背后做了工作。

8.可空類型

首先看一下可空類型的說明:表示基礎(chǔ)類型為值類型的對(duì)象,值類型與引用類型一樣也可以分配 null 引用(在 Visual Basic 中為 Nothing)。

某些值類型并不總是具有(或需要)已定義的值。在可能沒有為某些字段賦予任何值的數(shù)據(jù)庫(kù)中,這是常見的實(shí)際情況。例如,您可以將 null 值賦予數(shù)據(jù)庫(kù)字段以表示尚未給該數(shù)據(jù)庫(kù)字段賦值。通過可空類型,可以向一個(gè)類型的默認(rèn)值范圍中再添加一個(gè)為空的值。

可空類型在系統(tǒng)中有一個(gè)專門的類型,Nullable,一般使用泛型可空類型,C#NullableVB.NETNullable(Of T)。除了采用類名稱來定義外,在這兩種語(yǔ)言中都有簡(jiǎn)寫形式的定義,下面代碼中的定義是等價(jià)的:

  1. C#:
  2. Nullable<int> i = null;
  3. int? j = null;
  4. VB.NET:
  5. Dim i As Nullable(Of Integer) = Nothing
  6. Dim j? As Integer = Nothing 'VS2005不支持這種寫法

定義為可空類型的變量,可以和原始類型的變量一起進(jìn)行運(yùn)算,比如i+j,但是需要判斷該變量是否有值,否則可能出錯(cuò)。判斷可空類型的變量是否有值,可以通過HasValue屬性來判斷,然后通過Value屬性來獲取值。可空類型還有一個(gè)方法,GetValueOrDefault,如果有值,則獲取Value,如果為空,則獲取基礎(chǔ)類型的默認(rèn)值。詳細(xì)用法請(qǐng)參考MSDN

另外在C#中還有一個(gè)特殊的運(yùn)算符??,該運(yùn)算符的用法為j = i ?? 5;意思是如果i不為空,則返回i的值,否則返回5。查看MSDN中的解釋:如果 ?? 運(yùn)算符的左操作數(shù)非 null,該運(yùn)算符將返回左操作數(shù),否則返回右操作數(shù)。通過該運(yùn)算符可以簡(jiǎn)化判斷取值的方法。

9.空數(shù)據(jù)類型

在系統(tǒng)還存在一種特殊的類型,DBNull。在操作數(shù)據(jù)庫(kù)的時(shí)候,獲取的數(shù)據(jù)項(xiàng)沒有值,這個(gè)數(shù)據(jù)項(xiàng)可能不是null(Nothing),而是DBNull。下面驗(yàn)證這兩個(gè)值的不同:

  1. C#:
  2. Console.WriteLine(DBNull.Value == Nothing); //輸出:False
  3. VB.NET:
  4. Console.WriteLine(DBNull.Value Is Nothing) ' 輸出:False

在使用DBNull的時(shí)候必須使用DBNull.Value,如下:

  1. C#:
  2. object item = row[0];
  3. Console.WriteLine(item != DBNull.Value);
  4. VB.NET:
  5. Dim item As Object = row(0)
  6. Console.WriteLine(item = DBNull.Value)

本文就寫到這里了,希望對(duì)初學(xué)者有所幫助。因?yàn)榇a比較簡(jiǎn)單,其中的變量使用了簡(jiǎn)單的字母命名。文中有什么不足之處,還請(qǐng)大家指正。

【編輯推薦】

  1. C# 4.0新特性dynamic作用淺析
  2. Visual C# 2010新特性之dynamic類型
  3. C#實(shí)例講解二叉樹原理與實(shí)現(xiàn)
  4. VB.NET中有用的通用對(duì)象列表
  5. VB.NET和C#逐層橫向?qū)Ρ?/FONT>
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-09-07 15:04:07

2009-08-18 16:57:24

VB.NET和C#

2009-04-28 10:23:58

VB.NETC#對(duì)比

2009-11-02 16:47:18

VB.NET C#

2009-11-03 14:13:23

VB.NET C#

2009-07-28 17:03:55

ASP.NET VB.

2010-01-18 17:15:20

VB.NET參數(shù)類型不

2010-01-07 14:10:41

VB.NET數(shù)據(jù)類型

2010-01-08 17:00:22

VB.NET變量和常數(shù)

2009-10-29 14:02:24

VB和VB.NET比較

2010-01-12 17:54:42

VB.NET Dlli

2009-07-06 11:00:56

.NET 4.0新特性.NET

2009-08-13 14:52:21

.NET性能誤區(qū)C#和VB.NET

2010-01-15 10:47:15

VB.NET命名空間

2009-10-13 14:38:10

VB.NET訪問類型

2010-01-19 15:08:18

VB.NET對(duì)象成員

2009-11-02 17:38:56

VB.NET與C#

2009-11-02 17:15:42

C#轉(zhuǎn)換為VB.NET

2009-10-26 09:50:11

C#與VB.NET

2009-10-30 14:21:00

VB.NET開發(fā)語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产视频一区在线播放| 在线播放国产一区| 四虎在线精品| 久久久久久久久久久99999| 国产精品扒开腿做爽爽爽男男 | 三级在线观看| 日韩网站在线| 综合av色偷偷网| 韩国三级在线播放| 久久青青视频| 中文字幕一区三区| 国产一区在线免费观看| 五月婷婷中文字幕| 欧美激情欧美| 日韩激情视频在线| 天堂av.com| 国产盗摄一区二区| 国产日本亚洲高清| 国产精品一区二区不卡视频| 日本一二三区不卡| 天天综合一区| 亚洲人午夜色婷婷| a级大片免费看| 免费成人美女女| 亚洲国产欧美在线人成| 久久一区二区精品| 亚洲一区二区色| 99xxxx成人网| 久久99久久99精品免观看粉嫩| 国产精品扒开腿做爽爽| 视频在线亚洲| 欧美日韩视频在线观看一区二区三区| 亚洲一区二区在线免费观看| 日韩av成人| 国产一区二区三区在线看麻豆| 热re91久久精品国99热蜜臀| 国产中文字字幕乱码无限| 国产精品久久久久久影院8一贰佰| 日韩av最新在线| 91人人澡人人爽| 3d欧美精品动漫xxxx无尽| 亚洲午夜羞羞片| 97超碰免费观看| 成人免费在线视频网| 97se亚洲国产综合在线| 91精品久久久久久久久久| 日韩精选在线观看| 美女诱惑一区| 日本天堂在线观看| 国语自产精品视频在线看8查询8| 亚洲午夜未删减在线观看 | 精品亚洲永久免费精品| 九色porny自拍| 日韩高清在线| 亚洲高清不卡在线| 午夜精品短视频| 人成网站在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日韩欧美1区| 亚洲国产欧美一区二区丝袜黑人 | av亚洲精华国产精华精华| 91免费版网站入口| japanese国产在线观看| 蜜桃精品视频在线| 国产日韩在线播放| 国产xxxx在线观看| 三级久久三级久久| 国产精品久久久久久久久男| 日日夜夜狠狠操| 久久精品日产第一区二区| 日产日韩在线亚洲欧美| 奴色虐av一区二区三区| 日本aⅴ精品一区二区三区| 国产精品久久久久久一区二区| 日韩av无码中文字幕| 国产视频欧美| 国产精品久在线观看| 69xxxx国产| 久久国内精品视频| 国产精品爽爽爽爽爽爽在线观看| 青青艹在线观看| 亚洲一区二区伦理| 国产精品久久久久999| 国产情侣小视频| 韩国av一区二区| 91成人免费观看| 免费a级片在线观看| 国产精品亚洲人在线观看| 欧美在线影院在线视频| 精产国品一区二区| 韩国av一区二区三区在线观看| 国产精品国产精品| 日韩精品视频无播放器在线看| 国产欧美视频在线观看| 男同互操gay射视频在线看| аⅴ资源天堂资源库在线| 91搞黄在线观看| 欧美国产在线一区| 丝袜av一区| 色阁综合伊人av| 农村妇女精品一区二区| 欧美亚洲专区| 92裸体在线视频网站| 天天爱天天干天天操| 国产精品美女久久久久久 | 九一国产在线| 一区二区三区在线观看欧美| 欧美aⅴ在线观看| 欧美成年网站| 亚洲最新av网址| 久久久久亚洲av无码专区体验| 国产欧美日韩一级| 成人免费视频网| 亚洲女人18毛片水真多| 国产精品久线在线观看| 91专区在线观看| 二吊插入一穴一区二区| 日韩美女天天操| av在线播放中文字幕| 日韩视频二区| 国产精品久久久久99| 国产毛片一区二区三区va在线| 久久久久国产精品免费免费搜索| 真人做人试看60分钟免费| 四虎4545www精品视频| 亚洲国产成人91精品| 老女人性淫交视频| 久久精品国产一区二区三| 精品国产一区二区三区四区vr| yjizz视频网站在线播放| 亚洲sss视频在线视频| aaaaaaaa毛片| 国产精品久久久久久久久久10秀| 国产精品高清在线观看| 欧美少妇另类| 欧美日韩免费观看中文| 91丨porny丨九色| 国产va免费精品观看精品视频| 在线精品视频视频中文字幕| 少妇被躁爽到高潮无码文| 美女视频黄 久久| 色播亚洲视频在线观看| 午夜激情电影在线播放| 精品美女被调教视频大全网站| 午夜精品一区二区三区视频| 久久er99热精品一区二区| 欧美日韩一区在线观看视频| 啊啊啊久久久| 精品视频偷偷看在线观看| 日韩精品――中文字幕| 黄色小说综合网站| 国产福利片一区二区| 欧美日韩破处视频| www国产精品视频| 进去里视频在线观看| 国产日韩欧美在线一区| 无罩大乳的熟妇正在播放| 欧美一性一交| 欧美激情亚洲一区| 国产黄色一级大片| 亚洲一区二区三区自拍| 极品人妻一区二区| 久久久久久人妻一区二区三区| 国产精选在线| 日韩电影在线观看永久视频免费网站| 久久免费精彩视频| av资源网一区| 那种视频在线观看| 欧洲激情视频| 91老司机在线| 丁香高清在线观看完整电影视频| 欧美日韩一区在线观看| 多男操一女视频| 日本91福利区| 国产a级黄色大片| 高清久久一区| 午夜精品久久久99热福利| 五月婷婷久久久| 欧美色播在线播放| 精品久久久久久中文字幕人妻最新| 久久精品一区二区国产| 亚洲啪啪av| 外国成人毛片| 欧美精品在线免费| 日本又骚又刺激的视频在线观看| 欧美性色黄大片| 99热精品免费| 久久综合色婷婷| 国产l精品国产亚洲区久久| 国产尤物久久久| 96国产粉嫩美女| 日韩伦理在线一区| 日韩在线观看免费全集电视剧网站| 精品人妻午夜一区二区三区四区| 亚洲亚洲人成综合网络| 丰满少妇一区二区三区| 青青草原综合久久大伊人精品优势| 亚洲精品高清视频| 中文在线免费一区三区| 国产精品6699| 日韩激情美女| 中文字幕精品视频| 人妻与黑人一区二区三区| 亚洲va韩国va欧美va精品| 欧美xxxx精品| 97久久精品人人做人人爽| 中文字幕第88页| 国产伊人精品| 亚洲三区四区| 偷窥自拍亚洲色图精选| 亚洲在线免费看| 国产精品字幕| 国内精品久久久久影院优| 91在线看黄| 亚洲精品视频免费| 精品一区二三区| 欧美日韩中文字幕| 欧美黄色一区二区三区| 欧美国产精品专区| 丰满少妇在线观看资源站| 精品一区二区三区在线观看| 亚洲熟女乱色一区二区三区 | 一区二区在线观看网站| 中文字幕一区二区三区中文字幕| 欧美亚洲在线视频| av免费不卡国产观看| 久久天天躁狠狠躁夜夜躁| 国产高清免费av在线| 日韩精品一区二区三区第95| 一区二区的视频| 欧洲色大大久久| 久久国产视频精品| 国产精品久线在线观看| 亚洲精品一区二区三区影院忠贞| 成人精品视频网站| 美女又黄又免费的视频| 国产在线看一区| 亚洲免费黄色网| 日本成人在线不卡视频| 国产精品自拍合集| 欧美r级电影| 日韩欧美电影一区二区| 欧洲亚洲一区二区三区| 国产精品午夜av在线| 91久久精品无嫩草影院 | 丰满少妇久久久| 欧美日韩四区| 日产精品久久久久久久蜜臀| 中文字幕午夜精品一区二区三区 | 国产网站在线免费观看| 亚洲欧洲美洲在线综合| 牛牛影视精品影视| 亚洲欧洲国产一区| 北条麻妃在线| 色播久久人人爽人人爽人人片视av| av播放在线| 亚洲欧美一区二区三区情侣bbw| 日韩黄色影片| 亚洲日韩第一页| 男人天堂亚洲二区| 精品一区二区亚洲| 黄色国产在线| 在线电影欧美日韩一区二区私密| 精品影院一区| 最近的2019中文字幕免费一页| 黄色软件在线观看| 日日狠狠久久偷偷四色综合免费| 免费看美女视频在线网站| 久久久av一区| 成全电影大全在线观看| 久久99国产综合精品女同| av资源在线| 国产成人在线视频| 97久久中文字幕| eeuss一区二区三区| 欧美巨大xxxx| 日韩精彩视频| 亚洲精品一区二区在线看| 久久观看最新视频| 99视频一区| 免费看日本黄色| 免费日韩av片| 欧美婷婷精品激情| 国产不卡高清在线观看视频| 美女网站视频在线观看| 久久久电影一区二区三区| 国产一级淫片久久久片a级| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 高清久久久久久| 国产ts丝袜人妖系列视频| 国产精品久久久久一区| 精品午夜福利在线观看| 精品久久久一区| 中文字幕第99页| 日韩欧美的一区| 美国成人毛片| 在线观看欧美日韩| 国产桃色电影在线播放| 国产成人激情小视频| 美女久久精品| 日本在线观看一区二区| 色天天综合网| 精品久久一二三| 国产精品91一区二区| 欧美69精品久久久久久不卡| 久久久久久久久岛国免费| 欧美风情第一页| 亚洲综合色婷婷| 在线观看毛片视频| 精品免费视频一区二区| 男人的天堂av高清在线| 欧美人在线视频| 亚洲欧美一区二区三区| 91免费版黄色| 国产一区网站| 91九色在线观看视频| 黄色精品一二区| 蜜臀久久99精品久久久久久| 亚洲大片精品永久免费| 国产精品乱码久久久| 亚洲人成在线观看| 91禁在线看| 国产女同一区二区| 国产精品一区二区av交换| 欧美成人三级在线视频| 国产电影一区在线| 精品亚洲乱码一区二区 | 热99这里只有精品| 国产酒店精品激情| 天天爽天天爽天天爽| 在线一区二区三区| 性xxxxbbbb| 欧美伦理91i| 久久久久久久久成人| 日韩精品福利视频| 麻豆久久精品| 亚洲第一页av| 色综合天天在线| 色吊丝在线永久观看最新版本| 久久久视频在线| 99久久人爽人人添人人澡| 中文视频一区视频二区视频三区| 亚洲精品社区| 国产女人18毛片水真多18| 亚洲国产精品久久久久秋霞影院| 国产精品一区二区三区在线免费观看| 最新的欧美黄色| 国产成人77亚洲精品www| 日本一区二区在线视频| 蜜桃av综合| 韩国女同性做爰三级| 91久久精品网| 国产福利第一视频在线播放| 日本一区二区三区在线播放| 神马影视一区二区| 黄色国产小视频| 国产欧美精品一区二区色综合| www.99re7.com| 精品国产乱码久久久久久1区2区| 青青在线视频| 国产一区二区不卡视频在线观看| 亚洲久色影视| 精品少妇一区二区三区免费观| 亚洲电影第三页| 欧美性受xxxx狂喷水| 91极品视频在线| 老司机aⅴ在线精品导航| 无码人妻丰满熟妇区96| 国产日韩欧美一区二区三区乱码 | 久久aⅴ国产紧身牛仔裤| 在线免费观看日韩av| 色婷婷久久综合| 日本精品一区二区三区在线播放| 亚洲综合社区网| 亚洲美洲欧洲综合国产一区| 国产精品无码午夜福利| 欧美三级视频在线| 99视频免费在线观看| 精品国产第一页| 蜜臀av亚洲一区中文字幕| 久久久久久久久久久久久女过产乱| 精品国产伦一区二区三区观看方式| 日韩大片免费观看| 亚洲一区二区精品在线观看| 国产精品一区二区黑丝| 好看的av在线| 久久精品久久久久久| 欧美欧美在线| 成人在线看视频| 中文字幕电影一区| 亚洲国产福利视频| 国产成人97精品免费看片| 你懂的成人av| 大黑人交xxx极品hd| 欧美日韩国产高清一区二区三区| 黄色av网站在线播放| 久久精品丝袜高跟鞋| 国产综合久久久久久鬼色| 国产成人免费观看视频 | 国产精品一国产精品k频道56|