91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#基礎(chǔ)知識(shí)學(xué)習(xí)筆記

admin
2023年5月15日 19:24 本文熱度 1421
1-注釋方式
        1)//:?jiǎn)涡凶⑨?br style=";padding: 0px;outline: 0px;user-select: initial !important;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible"/>
        2)/*......*/:多行注釋

2-轉(zhuǎn)義字符
  • 制表符(\t):用于定位顯示的數(shù)據(jù),相當(dāng)于Tab
  • 換行符(\n):換行輸出


  • 單引號(hào)(\')


  • 雙引號(hào)(\")


3-常量聲明:const關(guān)鍵字

const PI=3.14;  //使用const聲明常量后不能在程序中再對(duì)值進(jìn)行修改

4-占位符
        將占位符中的值使用變量進(jìn)行替換,占位符編號(hào)從0開始
int a=1,b=2,c=3;Console.WriteLine("a={0},b={1},c={2}",a,b,c)


5-算數(shù)運(yùn)算符

        取整(/):小除大為0,大除小取整數(shù)
        取余(%):小除大為小,大除小取余

6-邏輯運(yùn)算符
        與&&        或||        非!

7-關(guān)系運(yùn)算符
        條件?結(jié)果1:結(jié)果2        條件真=結(jié)果1,否則=結(jié)果2

8-數(shù)據(jù)類型轉(zhuǎn)換

        值-->字符串:.ToString()

int a = 100;
string b=a.ToString();
Console.WriteLine(b);
       

    字符串-->值:.Parse

string a = "200";
int b=int.Parse(a);
Console.WriteLine(b);

9-一維數(shù)組
        數(shù)組聲明+定義
        int [] arr=new int[index];    //index為數(shù)組的索引號(hào),索引 從0開始
        初始化數(shù)組

        int [] arr={1,2,3,4};

//輸入數(shù)組長(zhǎng)度,并為每個(gè)索引賦值,賦值完成后輸出每個(gè)索引的值
Console.WriteLine("請(qǐng)輸入數(shù)組的長(zhǎng)度:");
int length=int.Parse(Console.ReadLine());
int[] arr3 = new int[length];      
//定義數(shù)組
for (int j = 0; j < arr3.Length; j++){    
Console.WriteLine("請(qǐng)輸入第{0}個(gè)數(shù)值",j+1);    
arr3[j]=int.Parse(Console.ReadLine());    
//為每個(gè)位置賦值
}    
Console.WriteLine("打印數(shù)組內(nèi)容為:");    
for (int j = 0; j < length; j++){    
Console.WriteLine("第{0}個(gè)的值為:", arr3[j]);    
Console.WriteLine(arr3[j]);    
//輸出
}


10-二維數(shù)組
        數(shù)組聲明+定義
        int[,]=new int[2,3]{ {1,2},{2,3},{3,4} };    //聲明一個(gè)2行3列的二維數(shù)組,并為數(shù)組賦值
//二維數(shù)組的遍歷int[,] 
arr=new int[2,3]{ {1,2},{2,3},{3,4} }; 
for(i=0;i<arr.GetLength(0);i++)//循環(huán)行。GetLength(0)獲取行數(shù)
{    
for(j=0;j<arr.GetLength(1);j++)//循環(huán)列。GetLength(1)獲取列數(shù)    
{    
Console.Write(arr[i,j]);    
}    
}

11-函數(shù)
        函數(shù)是一種封裝起來(lái)能實(shí)現(xiàn)一定功能的代碼
        語(yǔ)法:修飾符    返回值類型    方法名(參數(shù)類型 參數(shù)名)
                  {
                    方法體;
                    return 返回值;
                  }

                  修飾符:static靜態(tài)的,private私有的,public公有的


11.1-無(wú)參數(shù)、無(wú)返回值:void表示沒(méi)有返回值


static void HelloWorld() {
    Console.WriteLine("hello world");
}

11.2-有參數(shù)、沒(méi)有返回值


static void Sum(int a,int b)
{    
int Sum=a+b;    
Console.WriteLine(Sum);
}

11.3-有參數(shù)、有返回值


 static int Sum2(int a,int b)  
 //int為返回值類型
 {    
 int Sum2=a+b;               
 Console.WriteLine(Sum2);    
 return Sum2;  
 //使用return返回結(jié)果
 }

12-枚舉
        聲明枚舉:使用關(guān)鍵字enum
        如:enum Motor{啟動(dòng),停止,正轉(zhuǎn),反轉(zhuǎn)}    //定義一個(gè)名為Motor的枚舉類型        
        引用枚舉:
        Motor mortor=new Mortor();    //實(shí)例化枚舉


Motor mortor=new Mortor();    
//實(shí)例化枚舉
motor=Motor.啟動(dòng);
Console.WriteLine(motor);  
//以內(nèi)容的形式顯示
Console.WriteLine((int)motor);   
//以數(shù)值的形式顯示

13-結(jié)構(gòu)體
        聲明結(jié)構(gòu)體:使用關(guān)鍵字struct


struct Motor
{
  public string Start;
  public string Stop;
}
        
        引用結(jié)構(gòu)體
Morot motor=new Motor();    
//實(shí)例化結(jié)構(gòu)體
motor.Start="電機(jī)啟動(dòng)";
motor.Stop="電機(jī)停止";  
Console.WriteLine("motor.Start");  
//與西門子的博圖軟件中建立的結(jié)構(gòu)體變量很類似。


14-類和對(duì)象


        類是對(duì)象的一個(gè)抽象,一個(gè)模型
        對(duì)象是類的實(shí)例,可以用類來(lái)實(shí)例化對(duì)象。
        新建一個(gè)類,如果想使用類中的元素,需要實(shí)例化類。
        如:新建Motor的類
internal class Motor  
//新建Motor類文件    
{        
public string Start;  
//定義全局變量        
public string Stop;        
public void Dianji()  
//定義全局函數(shù)        
{            
Console.WriteLine("電機(jī)狀態(tài)有:{0}、{1}",this.Start,this.Stop);        
}    
}
        引用類:
Motor motor = new Motor();    
//實(shí)例化類
motor.Start = "啟動(dòng)";        
//引用類中的元素
motor.Stop = "停止";
motor.Dianji();

15-類的靜態(tài)成員
        在類中聲明成員時(shí),加入static。此時(shí)調(diào)用類中的成員可以不用實(shí)例化類
internal class Motor    
{    
//在類型前面加static        
public static string Start;
//static靜態(tài)成員        
public static string End;        
public static void Qidong()        
{            
Console.WriteLine("啟動(dòng)");        
}           
}
調(diào)用類
//靜態(tài)成員調(diào)用 ,不需要實(shí)例化對(duì)象
//實(shí)例成員會(huì)單獨(dú)占用一個(gè)內(nèi)存
//靜態(tài)成員共享一個(gè)內(nèi)存
Motor.Start = "開始啟動(dòng)";
Motor.End = "開始停止";
Motor.Qidong();

16-重載
        在同一個(gè)類中,方法名相同,參數(shù)類型或個(gè)數(shù)不同
        在類中聲明兩個(gè)名稱相同的方法,調(diào)用時(shí)即可選擇性的傳遞自己需要的方法中的參數(shù)。
internal class Employee    
{        
//使用三斜杠解釋代碼塊的具體含義
/// <summary>        
/// 計(jì)算A類工資        
/// </summary>        
/// <param name="baseSa">基本工資</param>        
/// <param name="workYear">工作年限</param>        
/// <param name="yearSa">工資年齡</param>        
/// <returns>總工資</returns>           
//將兩個(gè)方法的名稱設(shè)置一致,返回值也要一致,才能構(gòu)成重載        
public double Salary(double baseSa,int workYear,double yearSa)        
{            
double sum = baseSa + workYear * yearSa;            
return sum;        
}        
/// <summary>        
/// 計(jì)算B類工資        
/// </summary>        
/// <param name="baseSa">基本工資</param>        
/// <param name="workYear">工作年限</param>        
/// <param name="yearSa">工資年齡</param>        
/// <param name="ProSa">項(xiàng)目資金</param>        
/// <returns>總工資</returns>        
public double Salary(double baseSa, int workYear, double yearSa,double ProSa)        
{            
double sum = baseSa + workYear * yearSa+ProSa*0.1;            
return sum;        
}    
}
      調(diào)用類
Employee emp = new Employee();    
//實(shí)例化類
double Salary1 = emp.Salary(10, 10, 10);        
//調(diào)用方法1
double Salary2 = emp.Salary(10, 10, 10, 1000);   
//調(diào)用方法2
Console.WriteLine(Salary1);Console.WriteLine(Salary2);


17-get set訪問(wèn)器(將屬性私有化,通過(guò)公有化的方式進(jìn)行操作)   

       get{}訪問(wèn)器:設(shè)置對(duì)象可讀,用于獲取字段的值,需要使用return返回字段的值。

       set{}訪問(wèn)器:設(shè)置對(duì)象可寫,用于設(shè)定字段的值,需要使用一個(gè)特殊的值,這個(gè)值就是在面向?qū)ο笤O(shè)計(jì)中,對(duì)字段設(shè)置的值。

public  數(shù)據(jù)類型 屬性名
{        
get            
{                    
獲取屬性的語(yǔ)句塊;                    
return 值;            
}       
set            
{                
設(shè)置屬性得到語(yǔ)句塊;            
}
}


      在新建類中對(duì)屬性進(jìn)行定義時(shí),使用Public則外部程序可以隨意對(duì)類中的屬性進(jìn)行修改,使用private則外部程序又無(wú)法訪問(wèn),此時(shí)可以對(duì)private定義的屬性通過(guò)get,set訪問(wèn)器來(lái)進(jìn)行訪問(wèn)。

private string status;     
public string Status    //通過(guò)Status訪問(wèn)status
{
//通過(guò)共有的Status對(duì)私有的status進(jìn)行讀寫操作
//外部程序中調(diào)用Status,對(duì)Status的寫操作經(jīng)由set賦值給status。    
get { return status; }    //設(shè)置屬性可讀    
set //設(shè)置屬性可寫,value為外部傳給過(guò)來(lái)的值。經(jīng)過(guò)Status傳給status   
{ //當(dāng)外部程序輸入的內(nèi)容不是"正轉(zhuǎn)"、"反轉(zhuǎn)"的話顯示輸入錯(cuò)誤       
if (value.Equals("正轉(zhuǎn)")||value.Equals("反轉(zhuǎn)"))       
{           
status = value;  //關(guān)鍵字、將外部輸入的內(nèi)容賦值給value然后由value寫給status       
}       
else           
status = "輸入錯(cuò)誤";     
}   
}


static void Main(string[] args)        
{            
Motor motor=new Motor();            
motor.Num = 1;            
motor.Status = "正轉(zhuǎn)";            
motor.MoStatus();        
}

       訪問(wèn)流程-執(zhí)行 motor.Status = "正轉(zhuǎn)";調(diào)用Status中的set訪問(wèn)器,將"正轉(zhuǎn)"傳給value,再經(jīng)value傳給private中的ststus


18-構(gòu)造函數(shù)

      特點(diǎn)---名字必須與定義它的類名完全相同,并且沒(méi)有返回類型;

                在使用new關(guān)鍵字創(chuàng)建對(duì)象時(shí)系統(tǒng)自動(dòng)調(diào)用
                主要作用為初始化對(duì)象時(shí)給對(duì)象成員賦初值      
internal class Motor
{    
public string EquName { get; set; }    
public string EquStatus { get; set; }    
//構(gòu)造一個(gè)與類名相同的函數(shù),參數(shù)類型與類中的參數(shù)一致,并將參數(shù)進(jìn)行傳遞    
public  Motor(string equName,string equstatus)//名稱與類名相同,實(shí)例化的同時(shí)賦值    
{        
EquName = equName;        
EquStatus = equstatus;    
}    
public Motor()    //先實(shí)例化再賦值,即創(chuàng)建一個(gè)構(gòu)造函數(shù)的重載    
{ 
}
public void MStatus()    
{        
Console.WriteLine("{0}電機(jī){1}",EquName,EquStatus);    
}
}
 
static void Main(string[] args){     //創(chuàng)建對(duì)象時(shí)自動(dòng)執(zhí)行的函數(shù)     Motor M1= new Motor("行走","正轉(zhuǎn)");     M1.MStatus();
     Motor M2 = new Motor();      M2.EquName = "升降";     M2.EquStatus = "上升";     M2.MStatus();          }


19-繼承

        類與類之間可以形成繼承的關(guān)系,即父類與子類之間的關(guān)系。

        格式:子類:父類      

        實(shí)例化子類可以引用父類中的聲明

        建立子類SaleMan

internal class SaleMan:Employee  //表示Employee這個(gè)類是SaleMan這個(gè)類的父類    
{        
public string WorkYear { get; set; }    
}

        建立父類Employee

internal class Employee  
//父類中的元素在子類中均可用    
{        
public string Num { get; set; }        
public string Name { get; set; }        
public string Sex { get; set; }    
}

        調(diào)用類

SaleMan Sale=new SaleMan();Sale.Name = "ABCD";  
//Name本為Employee中的元素,由于Employee為SaleMan的父類,故SaleMan實(shí)例化后有父類的屬性


20-集合ArrayList、Hashtable
      可以在集合中放不同的元素類型,編譯不會(huì)報(bào)錯(cuò)但是運(yùn)行會(huì)報(bào)錯(cuò),為防止這種情況建議使用泛型集合
       ArrayList類似于數(shù)組,大小可根據(jù)需要?jiǎng)討B(tài)改變,可放多種類型數(shù)據(jù),是有序的,由下標(biāo)索引。
        如:創(chuàng)建一個(gè)Motor的類,并在類中創(chuàng)建對(duì)應(yīng)的構(gòu)造函數(shù)
public Motor(string equName, string equStatus)//構(gòu)造函數(shù)
{     
EquName = equName;     
EquStatus = equStatus;
}
public string EquName { get; set; }
public string EquStatus { get; set; }
        通過(guò)ArrayList集合對(duì)其進(jìn)行操作
//實(shí)例化多個(gè)類元素,并給其賦初值Motor M1 = new Motor("走行1", "正轉(zhuǎn)");Motor M2 = new Motor("走行2", "反轉(zhuǎn)");Motor M3 = new Motor("升降1", "正轉(zhuǎn)");Motor M4 = new Motor("升降2""反轉(zhuǎn)");Motor M5 = new Motor("旋轉(zhuǎn)1""正轉(zhuǎn)");Motor M6 = new Motor("旋轉(zhuǎn)2", "正轉(zhuǎn)");//聲明集合 ArrayList list = new ArrayList(); //向集合添加元素list.Add(M1);list.Add(M2);list.Add(M3);list.Add(M4);list.Add(M5);list.Add(M6);//獲取元素個(gè)數(shù)Console.WriteLine(list.Count);//獲取指定的元素Console.WriteLine("第3個(gè)元素:" + ((Motor)list[2]).EquName);//將list中的元素進(jìn)行強(qiáng)制轉(zhuǎn)換,輸出名稱Console.WriteLine("第3個(gè)元素:" + ((Motor)list[2]).EquStatus);//將list中的元素進(jìn)行強(qiáng)制轉(zhuǎn)換,輸出狀態(tài)Console.WriteLine();//遍歷集合Console.WriteLine("for 循環(huán)遍歷----------------------------");for (int i = 0; i < list.Count-1; i++){    Motor tempM = (Motor)list[i];//將集合中的元素強(qiáng)制轉(zhuǎn)換    Console.WriteLine("{0}電機(jī){1}",tempM.EquName,tempM.EquStatus);}
Console.WriteLine(); //換行
Console.WriteLine("foreach循環(huán)遍歷----------------------------");foreach (Motor item in list){    Console.WriteLine("{0}電機(jī){1}", item.EquName, item.EquStatus);}Console.WriteLine();//刪除元素list.Remove(M1);//根據(jù)對(duì)象刪除list.RemoveAt(1);   //根據(jù)下標(biāo)刪除//插入元素Motor M7 = new Motor("走行3", "正轉(zhuǎn)");list.insert(2,M7);//在指定索引處插入元素Console.WriteLine();//清除list.Clear();
       Hashtable類代表了一系列基于鍵的哈希代碼組織起來(lái)的鍵值對(duì)。無(wú)序的,沒(méi)有下標(biāo),以鍵值對(duì)的方式存儲(chǔ)
       如:創(chuàng)建一個(gè)Motor的類,以EquNo為鍵值對(duì)進(jìn)行操作
public Motor(string equNo, string equName, string equStatus)
{
//根據(jù)equNo對(duì)集合進(jìn)行操作   
EquNo = equNo;   
EquName = equName;   
EquStatus = equStatus;
}
public string EquNo{ get; set; }
public string EquName { get; set; }
public string EquStatus { get; set; }
        通過(guò)HashTable集合對(duì)其進(jìn)行操作
Motor M11 = new Motor("001", "走行1", "正轉(zhuǎn)");//實(shí)例化類并賦值
Motor M12 = new Motor("002", "走行2", "反轉(zhuǎn)");
Motor M13 = new Motor("003", "升降1", "正轉(zhuǎn)");
Motor M14 = new Motor("004", "升降2", "反轉(zhuǎn)");  
Hashtable hslist = new Hashtable(); //聲明集合并實(shí)例化
hslist.Add(M11.EquNo, M11); //M11.EquNo為唯一的鍵值對(duì),
hslist.Add(M12.EquNo, M12);
hslist.Add(M13.EquNo, M13);//要添加元素的鍵和元素的值
//獲取某個(gè)元素
Console.WriteLine("編號(hào)為001的設(shè)備:" + ((Motor)hslist["001"]).EquName);
Console.WriteLine("編號(hào)為002的設(shè)備:" + ((Motor)hslist["002"]).EquStatus);          
Console.WriteLine("編號(hào)為001的設(shè)備:" + ((Motor)hslist[M14.EquNo]).EquName);//獲取M14對(duì)應(yīng)編號(hào)的設(shè)備名
Console.WriteLine();
//循環(huán)遍歷(遍歷鍵、遍歷值)
Console.WriteLine("遍歷鍵-----------------------");
foreach (string item in hslist.Keys)//鍵的類型全部為字符串類型
{
    Console.WriteLine(item+"   ");
}
Console.WriteLine();
Console.WriteLine("遍歷值----------------------------");
foreach (Motor item in hslist.Values)   //將鍵值對(duì)的值進(jìn)行組合
{
     Console.WriteLine("設(shè)備號(hào):{0},設(shè)備名:{1},設(shè)備狀態(tài):{2}", item.EquNo, item.EquName, item.EquStatus);
}
Console.WriteLine();
//刪除,通過(guò)鍵值對(duì)刪除
hslist.Remove("001");
//添加元素
hslist.Add(M14.EquNo,M14);
foreach (Motor item in hslist.Values)   //將鍵值對(duì)的值進(jìn)行組合
{
   Console.WriteLine("設(shè)備號(hào):{0},設(shè)備名:{1},設(shè)備狀態(tài):{2}", item.EquNo, item.EquName, item.EquStatus);
}
//清除
hslist.Clear();

21-泛型集合List、Dictionary

      只能在泛型集合中存放相同的類元素
      List是可以與任何數(shù)據(jù)類型一起工作的類或方法,用來(lái)創(chuàng)建集合類,使用方法與ArrarList方法類似
      創(chuàng)建Travel的類,并為其創(chuàng)建構(gòu)造函數(shù)賦初值
public Travel(string trNo,string trName)    //構(gòu)造函數(shù),在聲明時(shí)賦值
{
    TRNo = trNo;
    TRName = trName;
}
public string TRNo;
public string TRName;
        通過(guò)List泛型集合對(duì)其進(jìn)行操作
Travel TR1 = new Travel("001", "走行1");
Travel TR2 = new Travel("002", "走行2");
List<Travel> list=new List<Travel>();   //list里面只能添加Travel類中的元素
//添加
list.Add(TR1);
list.Add(TR2);           
//獲取元素個(gè)數(shù)
Console.WriteLine("共有"+list.Count+"個(gè)元素");            
//獲取指定的元素
Console.WriteLine("第2個(gè)元素:" + ((Travel)list[1]).TRName);
//插入
Travel TR3 = new Travel("003", "走行3");
list.insert(0, TR3);//將TR3插入到索引0的位置
//刪除
list.Remove(TR2);
list.RemoveAt(0);
//遍歷
foreach (Travel item in list)
{
    Console.WriteLine("遍歷設(shè)備編號(hào):{0},設(shè)備名稱{1}", item.TRNo, item.TRName);
}
//清除
list.Clear();
      Dictionary(數(shù)據(jù)字典)通過(guò)鍵值對(duì)進(jìn)行操作,可以通過(guò)鍵值對(duì)進(jìn)行快速訪問(wèn),操作方法與HashTable類似。
      創(chuàng)建Travel的類,并為其創(chuàng)建構(gòu)造函數(shù)賦初值
public Travel(string trNo,string trName)    //構(gòu)造函數(shù),在聲明時(shí)賦值
{
    TRNo = trNo;
    TRName = trName;
}
public string TRNo;
public string TRName;
      通過(guò)Dictionary對(duì)其進(jìn)行操作
Travel TR1 = new Travel("001", "走行1");
Travel TR2 = new Travel("002", "走行2");
//<>中是鍵值對(duì)的類型,值
Dictionary<string, Travel> dict = new Dictionary<string, Travel>();   //指定鍵和值的類型
//添加
dict.Add(TR1.TRNo, TR1);
dict.Add(TR2.TRNo, TR2);
//獲取元素個(gè)數(shù)
Console.WriteLine("共有:"+dict.Count +"個(gè)元素");
//刪除,通過(guò)鍵值對(duì)刪除
dict.Remove("001");      
//遍歷鍵值對(duì)
foreach (string item in dict.Keys)
{
    Console.WriteLine(item);
}
//遍歷值
foreach (Travel item in dict.Values)
{
    Console.WriteLine("設(shè)備編號(hào):{0},設(shè)備名稱{1}", item.TRNo, item.TRName);
}
//清除
dict.Clear();


該文章在 2023/5/15 22:24:30 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 日韩天堂| 91成人无 | 国产精品福利导航 | 韩国主播 | 日韩精品欧美一区色 | 国产午夜福利91 | 精品综合欧美 | 国产精品高清网站 | 国语自产偷拍 | 韩国一区二区三区日 | 国产乱人免费视频 | 国产大片内 | 日韩午夜炮机 | 国产精品高清在线看 | 精品一在线观看 | 国产不卡a | 成人看片黄a在线 | 午夜网站在 | 日韩高清在线第一页 | 91九色熟女| 日本在线高 | 国产精选在线播 | 欧洲色综合 | 精品国产污免费 | 国产人成精品综 | 欧美亚洲日本韩国 | 国产乱码精品蜜臀 | 91精品国产91 | 日产乱码无线码 | 日韩五区| 欧美日韩国产一 | 国内自拍中文字幕 | 国产精品成人区 | 91自拍偷拍视频 | 日本a级 | 午夜视频导航 | 国产视频欧美综合 | 日韩高清在线观看 | 国产成年无 | 老女人丨91丨九色 | 欧洲在线观看视频高 |