vs2010如何運行程序,vs2010新功能(轉)

 2023-10-06 阅读 16 评论 0

摘要:VS2010中針對ASP.NET的23個新功能  1、代碼片段(Code Snippets):??? 代碼段是預先開發的代碼模板,可以節省我們對有關語法思考的時間。在VS 2005和VS 2008中,已經有建立了很多代碼段。不過,這些只適用于隱藏代碼(code behind

VS2010中針對ASP.NET的23個新功能

 1、代碼片段(Code Snippets):??? 代碼段是預先開發的代碼模板,可以節省我們對有關語法思考的時間。在VS 2005和VS 2008中,已經有建立了很多代碼段。不過,這些只適用于隱藏代碼(code behind)。在VS 2010中代碼片段支持JScript,HTML以及asp.net標記。  

 2、New Profiles:   ???? 在以前的dotnet版本中,我們已經看到過不同的開發環境的配置。如VB, C#, Web development 和General Development。我們根據自己的需要選擇一個環境配置。這些選擇將在第一次安裝visual studio之后或者通過import export選項。  

 3、Generate From Usage:   ???? 在ASP.Net以前的版本,微軟推出了從現有的代碼中進行代碼重構來生成方法,在In ASP.NET 4.0 中,Generate From Usage 有了新概念,能基于現有的代碼來生成屬性,方法,類和的其它類型。   

?? 4、Multi-Targeting:   ???? 在2008中就能創建一個2.0或者3.0版本創建項目,而不是用默認的3.5去開發。也是是說,有一個選擇項去改變開發項目的framework 版本。
  ???? 在2010中亦有相同選項功能,并做出相應的提高。在以前的版本中,如果你使用framework 2.0創建一個項目。智能感仍將能顯示3.5版本的類型和成員。如果你不能確定所選擇的framework內的成員,所以你就會有更多的機會去出錯。但是,在VS2010的智能感知會只向您顯示你選擇的framework 版本。  

vs2010如何運行程序? 5、Multi-Monitor:   ???? Visual Studio 2010 給我們提供能將IDE的窗體移動visual studio IDE之外,將它放至在桌面上。它還支持多面去地去看不同的IDE窗體。如果我們關閉Visual Studio,并再次打開它,我們會發現所有的窗體在我們最后一次放置的地方。   

? 6、Code Navigation:(Ctrl + ,)   ???? 新的導航使我們在文件中更快搜索術語。但它只能即在App_Code文件夾類文件,搜索您鍵入文本。它不適用于HTML或代碼隱藏文件。在下面的例 子,它顯示出我的鍵入函數名稱,它導航到窗口,選擇窗體中的任何一個,它將能定位到選擇的函數定義。  

 7、View Call Hierarchy:   ???? 這有助于查看函數和屬性的使用,例如,如果你在一個函數名右鍵,它會告訴你的函數使用分層列表。
 8、代碼高亮突出顯示:   ???? 選擇一個標識符,IDE會為你突出的被使用的地方。例如我選擇變量i,在它不同的使用地方,突出的顯示。
 9、智能提示的改進:   ???? 在VS 2008中,為一個對象選擇屬性時,它將根據輸入的字母的順序排列,為你提供智能提示。 在VS2010中它將向你顯示基于組的屬性,例如,如果您的文本框對象后鍵入text, 它將向你顯示Text, TextChanged, TextMode。它也支持Pascal的智能提示。例如,你輸入TC,它將導航TextChanged 成員。

???10、EnablePersistedSelection:   ???? 當我們選擇像datalist 或者gridview 控件中的一行時,如果我們移動到另一個網頁,在新的頁上,它選擇同編號行,雖然我們只在第一頁選擇了它。為了避免這個,ASP.Net 4.0為這些控件推出了一種新的屬性,這是EnablePersistedSelection。如果設置為true,在其他網頁中,將不能選擇同一編號。 例如,導航到原始網頁,第一頁將顯示選定的最初選定的行。  

 11、Web.Config Transformation   ???? 通常為我們的開發環境需要在web.config中設置一些值,然后在部署或測試的時候,我們手工地改變這些值。  

 12、URL Routing:   ???? 在asp.net 4.0中你不需要為每個單獨的處理程序類來定義routing。建立一個輔助函數MapPageRoute,幫助您實現更快速的routing。這些 routes在Application_Start中注冊。對于這個在Global.asax SetRouting方法的示例中設置routing,第一個參數是routing的友好名稱,第二個參數是檢查URL進行模式匹配,第三個是在aspx 頁將這一功能為用戶實施。  

如何使用vs2010、 13、Add Reference Dialog:   ???? 在Visual Studio以前的版本中,當打開reference dialog box時,這將需要一些時間來加載.NET程序集文件開始直到它加載從GAC中所有引用。在默認情況下打開項目選項卡,在VS2010上添加引用。 如果你錯誤地點 擊.Net或COM選項卡,你還有一個是取消的所有程序集加載的選項。因此,VS IDE的并不像以前凍結。  

 14、Compressing Session Values   ???? ASP.NET session外的進程的狀態值保存在數據庫或服務器上。這些 都是以序列化格式保存。發送到服務器時候,更多更大的session將消耗更多的資源 。現在,這些可以被壓縮在一個新的構建compressionEnabled屬性中。這種對sessionState元素屬性,可以在 web.config這樣被聲明。 此選項將用于session外的進程。

 15、Dynamic lookup:   ???? 有一個新的靜態類型,dynamic。 我們可以使用它作為任何對象的類型。如果有任何關于它的用法,我們能在運行時,得到它的錯誤。   

?? 16、Optional Parameters
  ???? 在C# 4之前,為了實現可選的參數,我們創建重載函數。但現在在C#中,可選參數沒有更多的限制。

 17、Named Parameters:   ???? 命名的參數可以忽略的參數順序,在不同順序的使用帶名稱的參數。  

 18、Meta Tags:   ???? HtmlMeta類可用于動態添加HTML meta的標簽和HTMLMeta的名稱,內容屬性可以被用來在運行時動態添加任何繼標記名稱和它的值。

vs2010是干什么的、?? 19、Generating Client IDs:   ???? web控件的客戶端ID是根據父控件ID動態的產生。 所以,如果你在一個用戶控件中使用textbox,我們必須查看為它生產什么樣ID,才能在客戶端的腳本中直接使用。 有時這些是動態的改變用戶控件的名稱也更改它的子控件ID。在asp.net 4.0中,這個問題是可以由頁面的ClientIDMode屬性解決。它有如下可能的值:AutoID , Static, Predictable 和Inherit。
 20、Permanent Redirect :   ???? 在有些情況下,如果當前頁面已經過時,我們希望將用戶重定向到新開發的網頁。我們可以使用Response.Redirect轉移頁到新的頁面。但 是,在這種情況下,搜索引擎保存搜索索引的網頁的舊信息。 另外,如果用戶瀏覽到這個網頁,他將被重定向到這個網頁,然后用命令的response.redriect幫助新打開的一頁。 但在ASP.NET 4.0中一個新的命令Response.RedirectPermanent可用于更改服務器頁上的頭信息。因此,如果用戶去為他直接重定向到新的一頁, 并為他節省了雙行頁面。在該網站和網頁更新的發現頭和更新其索引信息,展示最新的信息重新搜索索引同樣的搜索引擎。

 21、New Browser Definitions:   ???? 在ASP.net 3.5近幾年,一些瀏覽器已經更新,其中包括Google chrome和那些支持blackberry智能手機。 ASP.Net 4.0的HttpBrowserCapabilities類被更新符合支持新瀏覽器。   ?? 22、Package/Publish :   ???? Package/Publish提供設置publish和package命令 。配置調試選項,像以前的版本一樣,Publish提供設置編譯和生成的選項。 如果托管服務器上沒有SQL Express或如果您不希望包含發布的文件,然后選擇從App_Data文件夾中排除的那些文件。如果您選擇選項創建一個的Web包像ZIP文件,它會 創建一個部署的zip文件。否則,將是默認解壓縮的文件夾。 默認情況下,程序包在應用程序的OBJ文件夾下創建。默認它不會在解決方案瀏覽器中顯示,直到您選擇顯示所有文件選項。我們還可以設置服務器Web 應用程序名稱以及目標服務器的物理路徑。   

?? 23、Deploy SQL :   ???? 部署SQL選項,允許您設置將連接字符串作為部署的一部分。您可以使用不同的名稱和值手動添加連接字符串,或按一下import按鈕從 web.config導出。你可以僅僅選擇模式腳本或數據庫選項。在一個連接字符串顯示源設置,我們可以為設置目標服務器的值。   還可以手動添加數據庫腳本文件,通過點擊添加按鈕。您還可以更改SQL文件,以便在服務器上運行

?

這篇文章介紹Visual Studio 2010 (ASP.Net? 4.0)的新功能。 ??

? 1、代碼片段(Code? Snippets): 代碼段是預先開發的代碼模板,可以節省我們對有關語法思考的時間。在VS 2005和VS? 2008中,已經有建立了很多代碼段。不過,這些只適用于隱藏代碼(code behind)。在VS? 2010中代碼片段支持JScript,HTML以及asp.net標記。在下面畫面,展示了JScript和HTML片段的快捷菜單。
在JS中:

vs2010使用教程c語言、
在Html中 :

2、New? Profiles: 在以前的dotnet版本中,我們已經看到過不同的開發環境的配置。如VB, C#, Web development? 和General Development。我們根據自己的需要選擇一個環境配置。這些選擇將在第一次安裝visual studio之后或者通過import? export選項。

這里介紹兩個VS 2010中配置環境,兩個都是進行HTML開發的。他們是 Web? Development Web Development (Code Optimized) Web? Development,配置隱藏了客戶對象和HTML Mode頂端的事件欄。

Code Optimized ,你將發現是沒有code, designer tabs的html? 編輯器。它提供了一個更大的空間去玩轉html。

在你安裝visual studio之后,第一次使用的時候,你能選擇一個配置。你也能改變你的工作環境的配置通過:Tools >? Import & Export Settings > Reset all settings option。? 如果在IDE中沒有什么改變,你必須通過重新打開visual studio 使它生效。

3、Generate From? Usage: 在ASP.Net以前的版本,微軟推出了從現有的代碼中進行代碼重構來生成方法,在In ASP.NET 4.0? 中,Generate From Usage? 有了新概念,能基于現有的代碼來生成屬性,方法,類和的其它類型。 寫一些代碼,選中它,右擊最右側的字符,你將得到去提取屬性和方法的選項。此選項僅當你沒有定義過這個標識符才顯示。對于下面的例子智能感應不會顯? 示選項來提取屬性,例如,如果您右鍵點擊變量 i 。

4、Multi-Targeting: 在2008中就能創建一個2.0或者3.0版本創建項目,而不是用默認的3.5去開發。也是是說,有一個選擇項去改變開發項目的framework? 版本。 在2010中亦有相同選項功能,并做出相應的提高。在以前的版本中,如果你使用framework? 2.0創建一個項目。智能感仍將能顯示3.5版本的類型和成員。如果你不能確定所選擇的framework內的成員,所以你就會有更多的機會去出錯。但? 是,在VS2010的智能感知會只向您顯示你選擇的framework? 版本。

5、MultiMonitor: Visual Studio 2010? 給我們提供能將IDE的窗體移動visual studio IDE之外,將它放至在桌面上。它還支持多面去地去看不同的IDE窗體。如果我們關閉Visual? Studio,并再次打開它,我們會發現所有的窗體在我們最后一次放置的地方。

vs2010使用教程、6、Code? Navigation: 新的導航使我們在文件中更快搜索術語。但它只能即在App_Code文件夾類文件,搜索您鍵入文本。它不適用于HTML或代碼隱藏文件。在下面的例? 子,它顯示出我的鍵入函數名稱,它導航到窗口,選擇窗體中的任何一個,它將能定位到選擇的函數定義。

7、View Call? Hierarchy: 這有助于查看函數和屬性的使用,例如,如果你在一個函數名右鍵,它會告訴你的函數使用分層列表。

如果您單擊查看調用層次,它會顯示一個窗體,告訴你詳細的函數調用:


在層次結構中選擇窗口函數調用它會顯示的參數和函數調用的位置的詳細信息。

8、代碼高亮突出顯示: 選擇一個標識符,IDE會為你突出的被使用的地方。例如我選擇變量i,在它不同的使用地方,突出的顯示。

9、智能提示的改進: 在VS? 2008中,為一個對象選擇屬性時,它將根據輸入的字母的順序排列,為你提供智能提示。 在VS2010中它將向你顯示基于組的屬性,例如,如果您的文本框對象后鍵入text,? 它將向你顯示Text, TextChanged, TextMode。它也支持Pascal的智能提示。例如,你輸入TC,它將導航TextChanged? 成員。

在下面的圖片中可以看到4.0版本的ClientIDMode屬性:如果我們從項目屬性上改變framework? 版本。它不會顯示這個文本框的這個屬性。

10、EnablePersistedSelection: 當我們選擇像datalist? 或者gridview 控件中的一行時,如果我們移動到另一個網頁,在新的頁上,它選擇同編號行,雖然我們只在第一頁選擇了它。 為了避免這個,ASP.Net? 4.0為這些控件推出了一種新的屬性,這是EnablePersistedSelection。如果設置為true,在其他網頁中,將不能選擇同一編號。? 例如,導航到原始網頁,第一頁將顯示選定的最初選定的行。

11、Web.Config? Transformation 通常為我們的開發環境需要在web.config中設置一些值,然后在部署或測試的時候,我們手工地改變這些值。 例如,如果我們在Web.config文件中有連接字符串或其他任何鍵值組合,在項目發布或部署的時候,我們要去替換他們,這里我們將使用新的術? 語:Web.Config Transformation。這是一種自動的方式來執行此操作。Web.config? 設置能被其他的配置文件覆蓋,如:web.release.config,web.debug.config? 等等,在項目debug和release時候。這些值不會覆蓋原web.config,但會在發布的web.config中。 有了transformation的幫助,我們可以替換,移除,刪除一個節點和我們可以刪除或設置節點自身的屬性。例如: 1、創建一個配置文件,從configuration? manager > New
?
2、將其命名為 TransformWebConfig。從copy setting from? 選項中選擇Release。

這將會創建TransformWebConfig.config。

3、右擊web.config,選擇'Add config Transfroms? ’選項。打開Web.config并添加一個測試鍵和值。

  • <appSettings>
  • <addkey="KeyOne"value="Avalue"/>
  • </appSettings>

4、打開TransformWebConfig.config,并添加下面一行。

  • <appSettings>
  • <addkey="KeyOne"value="TestOnConfigurationConfig"xdt:Transform="Replace" xdt:Locator="Match(key)"/>
  • </appSettings>

5、右擊項目,選擇'Create Package’。? VS會從TransformWebConfig.config文件獲取值,它將改變我們發布的web.config文件中的值。 在成功生成的OBJ文件夾中,檢查TransformWebConfig文件夾下的web.config,您會看到關鍵字KeyOne的值為? TestOnConfigurationConfig。

12、URL? Routing: 現在,我們看到網站的URL是更具體的SEO。不顯示任何描述性信息,例如,不是顯示網址:http://mywebsite.com? /userprofiles.aspx?userid=1,開發者更愿意顯示:http://mywebsite.com/mydetails。在 asp.net? 2.0的URL映射為我們提供了一個選項,在一定程度上實現此功能。我們可以提供確切的網址導航和URL顯示給用戶。 Url routing在asp.net? 3.5中引入。開發者創建不同的route處理類取決于網站url routings的數量。由于有url? routing選項,回發的問題能被解決。 在asp.net? 4.0中你不需要為每個單獨的處理程序類來定義routing。建立一個輔助函數MapPageRoute,幫助您實現更快速的routing。這些? routes在Application_Start中注冊。對于這個在Global.asax? SetRouting方法的示例中設置routing,第一個參數是routing的友好名稱,第二個參數是檢查URL進行模式匹配,第三個是在aspx? 頁將這一功能為用戶實施。 Global.asax中是: 現在Book.aspx將使用下面的代碼進行進一步處理。

  • stringParameter=Page.RouteData.Values["RequestParameterName"].ToString();
  • if(Parameter==”Chemistry”){....}
  • elseif(Parameter==”Physics”){....}

現在,如果條件滿足,如果我們將首先瀏覽到? localhost / MyWebsite /Chemistry 。

13、 Add? Reference Dialog

在Visual? Studio以前的版本中,當打開reference dialog? box時,這將需要一些時間來加載.NET程序集文件開始直到它加載從GAC中所有引用。在默認情況下打開項目選項卡,在VS2010上添加引用。

如果你錯誤地點? 擊.Net或COM選項卡,你還有一個是取消的所有程序集加載的選項。因此,VS IDE的并不像以前凍結。

14、? Compressing Session Values

ASP.NET? session外的進程的狀態值保存在數據庫或服務器上。這些? 都是以序列化格式保存。發送到服務器時候,更多更大的session將消耗更多的資源? 。現在,這些可以被壓縮在一個新的構建compressionEnabled屬性中。這種對sessionState元素屬性,可以在? web.config這樣被聲明。

  • <sessionState
  • mode="SQLServer"stateConnectionString="connectionstringgoeshere"
  • compressionEnabled="true"/>

此選項將用于session外的進程 15、Dynamic lookup:? 有一個新的靜態類型,dynamic。? 我們可以使用它作為任何對象的類型。如果有任何關于它的用法,我們能在運行時,得到它的錯誤。例如: 輸出這將是:字符串 1。

  • dynamicintegerValue=1;
  • dynamicstringValue="astring";
  • dynamicResult=integerValue+stringValue;

但是如果你改變最后一行

  • dynamicResult=integerValue&stringValue;

你不會得到任何下面的編譯錯誤,在運行時,你會得到下面的錯誤。

Operator '&' cannot be applied to operands of type 'int' and 'string'

16、Optional Parameters

在asp.net 4之前,為了實現可選的參數,我們創建重載函數。但現在在C#中,可選參數沒有更多的限制。但是象VB的可選參數必須放置到最后。例如:

  • publicvoidFunctionOptionalParam(stringName,intAge,stringCountry="")

我們可以不提要求的可選參數的值。

  • FunctionOptionalParam("MyFullName",20);

17、Named Parameters:

命名的參數可以忽略的參數順序,在不同順序的使用帶名稱的參數。例如:

  • publicvoidFunctionNamedParam(intx,inty,intz)

在函數調用將是:

  • FunctionNamedParam(x:1,z:3,y:2);

在函數聲明的順序之前,雖然我們為參數設置了Z的值,但這些仍然等同于x = 1,&yacute; =? 2,z=3。 18、Meta Tags:HtmlMeta類可用于動態添加HTML? meta的標簽和HTMLMeta的名稱,內容屬性可以被用來在運行時動態添加任何繼標記名稱和它的值。 在asp.net 4.0? Page類中有兩個屬性MetaDescription和MetaKeywords。這些可以用來在運行時在html中為description和? keyword元素添加meta 的值。這些可以在HTML中提及頁面屬性或以這種方式:

  • Page.MetaDescription="thisismetadescription";
  • Page.MetaKeywords="thisisametakeyword";

如果這樣我們看到這樣的HTML生成:

  • <head>
  • <metaname="description"content="thisismetadescription"/> <metaname="keywords"content="thisisametakeyword"/>
  • </head>

19、Generating Client? IDs: web控件的客戶端ID是根據父控件ID動態的產生。? 所以,如果你在一個用戶控件中使用textbox,我們必須查看為它生產什么樣ID,才能在客戶端的腳本中直接使用。 有時這些是動態的改變用戶控件的名稱也更改它的子控件ID。在asp.net? 4.0中,這個問題是可以由頁面的ClientIDMode屬性解決。它有如下可能的值:AutoID , Static, Predictable? 和Inherit。 AutoID: 是webpage? 的默認值,功能和以前ASP.NET的版本一樣。 Static:為控件設置一個靜態的ID,所以我們不需要當心父控件的ID,我們也能使用javascript引用它。 例如一個用戶控件里面的textbox? ,它外面胡一個ClientIDMode 設置為static

  • <asp:TextBoxID="textbox1"runat="server"clientIDMode="Static"></asp:TextBox>
  • <uc1:WebUserControlID="WebUserControl1"runat="server"/>

這個用戶控件包含了textbox2

  • <asp:TextBoxID="TextBox2"ClientIDMode="Static"runat="server"></asp:TextBox>

這個代碼將產生下面的HTML:

  • <inputname="ctl00$MainContent$textbox1"type="text"id="textbox1"/>
  • <inputname="ctl00$MainContent$WebUserControl1$TextBox2"type="text"id="TextBox2"/>

如果我們移除ClientIDMode="static" ,輸出胡HTML將會是:

  • <inputname="ctl00$MainContent$textbox1"type="text"id="MainContent_textbox1"/>

它將產生象以前asp.net版本的textbox的ID Predictable:如果gridview? 或者listview控件中我們設置ClientIDMode的值為Predictable,它將會串連控件ID和 Gridview的ID? ,column的值在ClientIDRowSuffiex 屬性上提到:

  • GridviewID="GridView1"
  • ClientIDMode="Predictable"
  • ClientIDRowSuffix="ItemID"

如果在gridview的模板列中的有一個ID為Label1的label控件 ,它被綁定在ItemID? 列上。 它的ID將會是:ID=? GridView1_Label1_200。 如果我們用數據綁定控件之外使用web控件,設置ClientIDMode等于Predictable:

  • <asp:TextBoxID="TextBox1"runat="server"ClientIDMode="Predictable"></asp:TextBox>
  • <asp:PanelID="panel1"runat="server"> <asp:TextBoxID="TextBox2"runat="server"ClientIDMode="Predictable"></asp:TextBox>
  • </asp:Panel>

你可以看到webcontrols在一個面板輸出和另外一個再面板以外輸出。

  • <inputname="ctl00$MainContent$TextBox1"type="text"id="MainContent_TextBox1"/>
  • <divid="MainContent_panel1"> <inputname="ctl00$MainContent$TextBox1"type="text"id="MainContent_TextBox1"/>
  • </div>

它將產生所有web控件的ID,是panel的頁面的ID加上子控件的ID。 Inherit:? WEB控件默認是繼承父容器的ID。 控件能覆蓋它父控件的屬性。所以我能為ClientModeID設置不同的值。

20、Permanent? Redirect? : 在有些情況下,如果當前頁面已經過時,我們希望將用戶重定向到新開發的網頁。我們可以使用Response.Redirect轉移頁到新的頁面。但? 是,在這種情況下,搜索引擎保存搜索索引的網頁的舊信息。? 另外,如果用戶瀏覽到這個網頁,他將被重定向到這個網頁,然后用命令的response.redriect幫助新打開的一頁。 但在ASP.NET? 4.0中一個新的命令Response.RedirectPermanent可用于更改服務器頁上的頭信息。因此,如果用戶去為他直接重定向到新的一頁,? 并為他節省了雙行頁面。在該網站和網頁更新的發現頭和更新其索引信息,展示最新的信息重新搜索索引同樣的搜索引擎。

21、New Browser? Definitions: 在ASP.net 3.5近幾年,一些瀏覽器已經更新,其中包括Google? chrome和那些支持blackberry智能手機。 ASP.Net? 4.0的HttpBrowserCapabilities類被更新符合支持新瀏覽器。

22、Package/Publish? :

Package/Publish提供設置publish和package命令? 。配置調試選項,像以前的版本一樣,Publish提供設置編譯和生成的選項。 如果托管服務器上沒有SQL? Express或如果您不希望包含發布的文件,然后選擇從App_Data文件夾中排除的那些文件。如果您選擇選項創建一個的Web包像ZIP文件,它會? 創建一個部署的zip文件。否則,將是默認解壓縮的文件夾。 默認情況下,程序包在應用程序的OBJ文件夾下創建。默認它不會在解決方案瀏覽器中顯示,直到您選擇顯示所有文件選項。我們還可以設置服務器Web? 應用程序名稱以及目標服務器的物理路徑。

23、Deploy SQL :

部署SQL選項,允許您設置將連接字符串作為部署的一部分。您可以使用不同的名稱和值手動添加連接字符串,或按一下import按鈕從? web.config導出。你可以僅僅選擇模式腳本或數據庫選項。在一個連接字符串顯示源設置,我們可以為設置目標服務器的值。

您還可以手動添加數據庫腳本文件,通過點擊添加按鈕。您還可以更改SQL文件,以便在服務器上運行。?

http://www.cnblogs.com/Leo_wl/archive/2011/01/06/1927566.html

轉載于:https://www.cnblogs.com/shangri-la/archive/2012/05/19/2508632.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/120560.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息