小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

快速理解.NET Framework (1)

 joojo 2007-10-16

引言

本文著眼于微軟.NET框架。這是較新發(fā)布的軟件開(kāi)發(fā)環(huán)境,它幫助開(kāi)發(fā)者快速開(kāi)發(fā)應(yīng)用程序并且提供各種不同語(yǔ)言像Visual Basic .NET, C#, ASP .NET, Jscript .NET等開(kāi)發(fā)最合適的,高效的,可擴(kuò)展的,面向性能的應(yīng)用程序 。

 

.NET框架概述
.NET框架是一種新的計(jì)算平臺(tái),它在Internet高度分布的環(huán)境中簡(jiǎn)化應(yīng)用程序開(kāi)發(fā)

 

服務(wù)

NET框架提供以下服務(wù):

  • 開(kāi)發(fā)軟件應(yīng)用工具
  • 執(zhí)行軟件應(yīng)用的運(yùn)行時(shí)環(huán)境
  • 服務(wù)器基礎(chǔ)設(shè)施
  • 幫助開(kāi)發(fā)者減少編碼提高工作效率的增值只能軟件

.NET框架將使開(kāi)發(fā)者為不同設(shè)備和不同平臺(tái)開(kāi)發(fā)應(yīng)用程序,如:windows應(yīng)用程序、web應(yīng)用程序、windows服務(wù)和web服務(wù)。

 

目標(biāo)

設(shè)計(jì).NET框架是為了實(shí)現(xiàn)下列目標(biāo):

  • 一個(gè)一致的面向?qū)ο缶幊汰h(huán)境,目標(biāo)代碼能本地化存儲(chǔ)和執(zhí)行,本地化執(zhí)行而不是分布式Internet,或者遠(yuǎn)程執(zhí)行。
  • 一個(gè)減少軟件部署和版本沖突的代碼編輯環(huán)境。
  • 一個(gè)確保安全的代碼執(zhí)行的代碼編輯環(huán)境,包括來(lái)自未知的或是不能完全信任的社團(tuán)的代碼。
  • 一個(gè)能消除腳本的或解釋性的環(huán)境引起的性能問(wèn)題的代碼編輯環(huán)境。
  • 開(kāi)發(fā)者在面對(duì)大量不同應(yīng)用系統(tǒng)類(lèi)型時(shí)有一致的開(kāi)發(fā)體驗(yàn),如基于Windows的應(yīng)用程序和基于Web的應(yīng)用程序。
  • 構(gòu)造所有工業(yè)標(biāo)準(zhǔn)信息來(lái)確?;?/span>.NET框架的代碼能夠集成任何其他代碼。

 

理解.NET框架體系結(jié)構(gòu)

    .NET框架有兩個(gè)組件:.NET框架類(lèi)庫(kù)和公共語(yǔ)言運(yùn)行時(shí)。
    .NET
框架類(lèi)庫(kù)使類(lèi)型(CTS)變的簡(jiǎn)單,它對(duì)于.NET語(yǔ)言來(lái)說(shuō)是公共的。
   
公共語(yǔ)言運(yùn)行時(shí)組成部分有由:(類(lèi)加載器)加載程序的IL代碼并將起編譯成本地代碼到運(yùn)行時(shí),執(zhí)行和管理代碼來(lái)加強(qiáng)安全和類(lèi)型安全,并且提供線(xiàn)程支持。
   

 

 

.NET框架體系結(jié)構(gòu)最頂部是像VB .NET C#, VJ#, VC++ .NET之類(lèi)的語(yǔ)言;開(kāi)發(fā)者能開(kāi)發(fā)(使用上面的任何語(yǔ)言)像Windows窗體,Web窗體,Windows服務(wù)和XML Web服務(wù)。


理解
.NET框架的角色

    .NET框架有兩個(gè)組要的組件:公共語(yǔ)言運(yùn)行時(shí)(CLR)和.NET框架類(lèi)庫(kù)。公共語(yǔ)言運(yùn)行時(shí)是.NET框架的基礎(chǔ)。CLR 在運(yùn)行時(shí)管理代碼,提供像內(nèi)存管理,線(xiàn)程管理和remoting之類(lèi)的核心服務(wù),同時(shí)也加強(qiáng)嚴(yán)格的類(lèi)型安全和促進(jìn)代碼正確來(lái)確保程序的安全性和健壯性(魯棒性)。代碼管理的概念是CLR的基本原則。針對(duì)CLR的代碼被認(rèn)為是可管理的代碼,而不是針對(duì)CLR的代碼則被認(rèn)為是不可管理的代碼。

    類(lèi)庫(kù)是.NET框架的一個(gè)完整的組件, 包括可重用類(lèi)的面向?qū)ο蠹?,它使我們能用?lái)開(kāi)發(fā)應(yīng)用程序包括傳統(tǒng)的命令行或是任何像Windows窗體,ASP. NET Web窗體和新近發(fā)明的XML Web 服務(wù)的Windows服務(wù)這樣的圖形用戶(hù)接口(GUI)。

    歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA)標(biāo)準(zhǔn)定義了通用語(yǔ)言規(guī)范(CLS);這加強(qiáng)了軟件開(kāi)發(fā)語(yǔ)言能夠進(jìn)行互操作。按照CLS編寫(xiě)的代碼應(yīng)該能和另一個(gè)符合CLS語(yǔ)言的代碼一起編譯。因?yàn)橛煞?/span>CLS語(yǔ)言支持的代碼將會(huì)被編譯成中間語(yǔ)言(IL)代碼。CLR引擎執(zhí)行IL代碼。這保證了符合CLS語(yǔ)言的互用性。微軟.NET框架支持的語(yǔ)言有Microsoft Visual Basic .NET, Microsoft Visual C#, Microsoft Visual C++ .NET, and Microsoft Visual J# .NET.

語(yǔ)言編譯器生成中間語(yǔ)言代碼,叫做微軟中間語(yǔ)言(MSIL),它使不同可互操作的.NET語(yǔ)言編寫(xiě)程序。
     ECMA標(biāo)準(zhǔn),公共語(yǔ)言架構(gòu)CLI),定義了IL代碼需要執(zhí)行的基礎(chǔ)架構(gòu)的規(guī)范。CLI提供一個(gè)公共類(lèi)型系統(tǒng)(CTS)和像類(lèi)型安全,可管理的代碼執(zhí)行和side by side執(zhí)行的服務(wù)。




1.微軟.NET框架的ECMA標(biāo)準(zhǔn)

.NET框架提供基礎(chǔ)架構(gòu)和服務(wù)。CLI規(guī)范.它們包括:
    公共語(yǔ)言運(yùn)行時(shí):

           CLR包括CLI

           CLR也提供.NET應(yīng)用程序的執(zhí)行環(huán)境

    公共類(lèi)型系統(tǒng):

           提供數(shù)據(jù)類(lèi)型,值,對(duì)象類(lèi)型。這使得開(kāi)發(fā)人員能用不同的語(yǔ)言開(kāi)發(fā)應(yīng)用程序。.NET語(yǔ)言共享CTS意味著所有在應(yīng)用程序中的類(lèi)型在CLI類(lèi)型定義中是一樣的。

      類(lèi)型安全:

           .NET框架在值和對(duì)象上執(zhí)行操作,因?yàn)?/span>.NET框架需要知道每個(gè)值和對(duì)象的類(lèi)型并且引用值和對(duì)象類(lèi)型。

      可管理的代碼執(zhí)行

           .NET框架管理執(zhí)行.NET應(yīng)用程序時(shí)對(duì)象的狀態(tài)。

           .NET框架自動(dòng)分配內(nèi)存并提供來(lái)機(jī)收集機(jī)制來(lái)重新分配內(nèi)存

      Side-by-side執(zhí)行

           .NET框架通過(guò)使用不同版本的裝配器允許同一應(yīng)用程序的不同版本運(yùn)行在同一機(jī)器上。裝配器由IL代碼和元數(shù)據(jù)組成。元數(shù)據(jù)決定應(yīng)用程序的依賴(lài)關(guān)系。通過(guò)這個(gè),.NET框架運(yùn)行時(shí)能執(zhí)行多種版本裝配器并且解決遺留的開(kāi)發(fā)環(huán)境的主要問(wèn)題。那就是DLL HELL?


.NET裝配器

2 Side-by-side執(zhí)行

 

 



1.微軟.NET框架的ECMA標(biāo)準(zhǔn)

.NET框架提供基礎(chǔ)架構(gòu)和服務(wù)。CLI規(guī)范.它們包括:
    公共語(yǔ)言運(yùn)行時(shí):

           CLR包括CLI

           CLR也提供.NET應(yīng)用程序的執(zhí)行環(huán)境

    公共類(lèi)型系統(tǒng):

           提供數(shù)據(jù)類(lèi)型,值,對(duì)象類(lèi)型。這使得開(kāi)發(fā)人員能用不同的語(yǔ)言開(kāi)發(fā)應(yīng)用程序。.NET語(yǔ)言共享CTS意味著所有在應(yīng)用程序中的類(lèi)型在CLI類(lèi)型定義中是一樣的。

      類(lèi)型安全:

           .NET框架在值和對(duì)象上執(zhí)行操作,因?yàn)?/span>.NET框架需要知道每個(gè)值和對(duì)象的類(lèi)型并且引用值和對(duì)象類(lèi)型。

      可管理的代碼執(zhí)行

           .NET框架管理執(zhí)行.NET應(yīng)用程序時(shí)對(duì)象的狀態(tài)。

           .NET框架自動(dòng)分配內(nèi)存并提供來(lái)機(jī)收集機(jī)制來(lái)重新分配內(nèi)存

      Side-by-side執(zhí)行

           .NET框架通過(guò)使用不同版本的裝配器允許同一應(yīng)用程序的不同版本運(yùn)行在同一機(jī)器上。裝配器由IL代碼和元數(shù)據(jù)組成。元數(shù)據(jù)決定應(yīng)用程序的依賴(lài)關(guān)系。通過(guò)這個(gè),.NET框架運(yùn)行時(shí)能執(zhí)行多種版本裝配器并且解決遺留的開(kāi)發(fā)環(huán)境的主要問(wèn)題。那就是DLL HELL?


.NET裝配器

2 Side-by-side執(zhí)行

理解.NET框架CLR

    公共語(yǔ)言運(yùn)行時(shí):

  • 運(yùn)行時(shí)環(huán)境
    • CLR把應(yīng)用程序編譯成有運(yùn)行時(shí),把IL代碼編譯成本地代碼,執(zhí)行代碼
  • 運(yùn)行時(shí)服務(wù)
    • 內(nèi)存管理
    • 類(lèi)型安全
    • 增強(qiáng)安全
    • 異常管理
    • 線(xiàn)程支持
    • 調(diào)試支持

理解.NET框架CLR的體系結(jié)構(gòu)

理解.NET框架CLR的體系結(jié)構(gòu)


  • 類(lèi)加載器,將類(lèi)加載到CLR。
  • MSIL到本地代碼的編譯,將把MSIL轉(zhuǎn)變成本地代碼。
  • 代碼管理器,它在代碼執(zhí)行期間進(jìn)行管理。
  • 內(nèi)存分配和垃圾收集,表現(xiàn)為自動(dòng)內(nèi)存管理。
  • 安全的引擎,使用微軟提供的工具和在控制面板對(duì).NET框架配置加強(qiáng)安全限制包括代碼級(jí)安全、文件及機(jī)器級(jí)安全。
  • 類(lèi)型檢查器,增強(qiáng)強(qiáng)類(lèi)型檢查。
  • 線(xiàn)程支持,提供對(duì)應(yīng)用程序的多線(xiàn)程支持。
  • 異常管理器,提供對(duì)運(yùn)行時(shí)異常處理的機(jī)制。
  • 調(diào)試引擎,允許開(kāi)發(fā)者調(diào)試應(yīng)用程序的不同類(lèi)型。
  • COM配置,允許.NET應(yīng)用程序與COM應(yīng)用程序交換數(shù)據(jù)。
  • 基類(lèi)庫(kù)支持,提供應(yīng)用程序運(yùn)行時(shí)所需的類(lèi)。

公共語(yǔ)言運(yùn)行時(shí)的特征

    CLR有以下特征:

  • 管理內(nèi)存:
    • 內(nèi)存分配
    • 內(nèi)存的重分配(垃圾收集)
  • 線(xiàn)程執(zhí)行支持
  • 代碼執(zhí)行
  • 代碼安全檢查
  • 編譯
    • MSIL到本地代碼
  • 基于信任的代碼安全(對(duì)執(zhí)行代碼的授權(quán)。代碼級(jí),文件級(jí),機(jī)器級(jí))這些特征對(duì)運(yùn)行在公共語(yǔ)言運(yùn)行時(shí)的可管理代碼來(lái)說(shuō)是固有的。

理解CLR

    為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成:

  • 能夠執(zhí)行算術(shù)和邏輯運(yùn)算的指令。
  • 直接訪(fǎng)問(wèn)內(nèi)存。
  • 控制執(zhí)行流
  • 處理異常

    MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。
    一個(gè)裝配器由精簡(jiǎn)的可執(zhí)行文件組成。當(dāng)執(zhí)行PE文件的時(shí)候類(lèi)加載器價(jià)載MSIL代碼而元數(shù)據(jù)把精簡(jiǎn)的可執(zhí)行文件編成運(yùn)行時(shí)內(nèi)存。
    PE文件執(zhí)行之前它將代碼傳遞到本地代碼編譯器進(jìn)行編譯,IL到本地代碼的編譯是有JIT編譯器完成的。因?yàn)椴煌?/span>CPU架構(gòu)和編譯器 IL代碼到本地指令。

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



 

 

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



 

 

    為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成:

  • 能夠執(zhí)行算術(shù)和邏輯運(yùn)算的指令。
  • 直接訪(fǎng)問(wèn)內(nèi)存。
  • 控制執(zhí)行流
  • 處理異常

    MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。
    一個(gè)裝配器由精簡(jiǎn)的可執(zhí)行文件組成。當(dāng)執(zhí)行PE文件的時(shí)候類(lèi)加載器價(jià)載MSIL代碼而元數(shù)據(jù)把精簡(jiǎn)的可執(zhí)行文件編成運(yùn)行時(shí)內(nèi)存。
    PE文件執(zhí)行之前它將代碼傳遞到本地代碼編譯器進(jìn)行編譯,IL到本地代碼的編譯是有JIT編譯器完成的。因?yàn)椴煌?/span>CPU架構(gòu)和編譯器 IL代碼到本地指令。

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



 

 

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



 

 

    CLR有以下特征:

  • 管理內(nèi)存:
    • 內(nèi)存分配
    • 內(nèi)存的重分配(垃圾收集)
  • 線(xiàn)程執(zhí)行支持
  • 代碼執(zhí)行
  • 代碼安全檢查
  • 編譯
    • MSIL到本地代碼
  • 基于信任的代碼安全(對(duì)執(zhí)行代碼的授權(quán)。代碼級(jí),文件級(jí),機(jī)器級(jí))這些特征對(duì)運(yùn)行在公共語(yǔ)言運(yùn)行時(shí)的可管理代碼來(lái)說(shuō)是固有的。

理解CLR

    為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成:

  • 能夠執(zhí)行算術(shù)和邏輯運(yùn)算的指令。
  • 直接訪(fǎng)問(wèn)內(nèi)存。
  • 控制執(zhí)行流
  • 處理異常

    MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。
    一個(gè)裝配器由精簡(jiǎn)的可執(zhí)行文件組成。當(dāng)執(zhí)行PE文件的時(shí)候類(lèi)加載器價(jià)載MSIL代碼而元數(shù)據(jù)把精簡(jiǎn)的可執(zhí)行文件編成運(yùn)行時(shí)內(nèi)存。
    PE文件執(zhí)行之前它將代碼傳遞到本地代碼編譯器進(jìn)行編譯,IL到本地代碼的編譯是有JIT編譯器完成的。因?yàn)椴煌?/span>CPU架構(gòu)和編譯器 IL代碼到本地指令。

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



 

 

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



 

 

    為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成:

  • 能夠執(zhí)行算術(shù)和邏輯運(yùn)算的指令。
  • 直接訪(fǎng)問(wèn)內(nèi)存。
  • 控制執(zhí)行流
  • 處理異常

    MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。
    一個(gè)裝配器由精簡(jiǎn)的可執(zhí)行文件組成。當(dāng)執(zhí)行PE文件的時(shí)候類(lèi)加載器價(jià)載MSIL代碼而元數(shù)據(jù)把精簡(jiǎn)的可執(zhí)行文件編成運(yùn)行時(shí)內(nèi)存。
    PE文件執(zhí)行之前它將代碼傳遞到本地代碼編譯器進(jìn)行編譯,IL到本地代碼的編譯是有JIT編譯器完成的。因?yàn)椴煌?/span>CPU架構(gòu)和編譯器 IL代碼到本地指令。

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



 

 

CLR的特點(diǎn)

  • 被管理的多線(xiàn)程支持和線(xiàn)程監(jiān)控。應(yīng)用程序域包括一個(gè)或多個(gè)執(zhí)行線(xiàn)程。
  • 管理不安全代碼的互用性,和COM配置。
  • 結(jié)構(gòu)化的異常處理機(jī)制
  • 基礎(chǔ)架構(gòu)和被管理執(zhí)行進(jìn)程,內(nèi)存管理和垃圾收集

CLR的結(jié)構(gòu)



  • 基類(lèi)庫(kù)支持支持所有使用.NET語(yǔ)言來(lái)支持基本功能性的基類(lèi)。
  • COM配置支持COM對(duì)象間數(shù)據(jù)的重組。
  • 異常管理支持使用try catch finally語(yǔ)句塊在運(yùn)行時(shí)處理錯(cuò)誤。
  • 安全引擎在運(yùn)行時(shí)加強(qiáng)安全規(guī)則。
  • 類(lèi)型檢查器在運(yùn)行時(shí)作類(lèi)型安全檢查。
  • 調(diào)試引擎支持運(yùn)行時(shí)調(diào)試。
  • 代碼管理器管理運(yùn)行時(shí)被管理代碼
  • IL到本地代碼編譯器將MSIL代碼編譯成機(jī)器相關(guān)的本地代碼
  • 垃圾收集器支持內(nèi)存管理并支持清理運(yùn)行時(shí)廢棄的內(nèi)存。
  • 類(lèi)加載器在運(yùn)行時(shí)加載類(lèi)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多