Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 17

0
votes
answers
38 views
+10

請參閱mvc視圖中的intellisense建議

0

我在visual studio 2017上使用了MVC5。 我已經制作了一個空控制器並寫了我的代碼,此後我已經將模型對象傳遞給了我的視圖。 現在我試圖代碼我的觀點的一面,但我有這些問題: (我看過類似的問題,不能修復這些)請參閱mvc視圖中的intellisense建議

1 - 雖然我已經在我看來,下面寫代碼作爲第一行,但我無法使用智能感知的建議對我的模型類。(我發現它的類似的問題之一)

@model IEnumerable<MyProject.Models.Myclass> 

2 - 我正在使用C#常見的關鍵字,如「的foreach」,但是當我寫我們說「脫穎而出」在看來,它並沒有暗示我任何東西。而在控制器中,它建議所有這些。

+0

請發佈您已撰寫的視圖以及您期待看到智能感知建議的地方。 –

+0

它是一個非常空的模型,只有上面的線在它上面。現在我正在嘗試開始編碼我的視圖bu我看不到來自intellisense的任何建議。 – yekanchi

沙发
0
0

在剃刀意見,每當你想使用C#常見的關鍵字,你必須用@符號前綴它

因此,使用你有什麼聲明模型後,就可以循環通過收集和例如創建一個表

@model IEnumerable<MyProject.Models.Myclass> 

@foreach (var item in Model) 
{ 
    <tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.Field1) 
    </td> 
     <td> 
     @Html.DisplayFor(modelItem => item.Field2) 
    </td> 


    </tr> 
} 
+0

我知道這一點,我使用它,我的意思是intellisense不能在@符號後提示foreach。 – yekanchi

0
votes
answers
23 views
+10

重新啓動正常的線程

3

假設我想要做的是驗證一百萬個字符串,並且每個驗證需要幾秒鐘的時間。重新啓動正常的線程

我的方法:

我已經線程的數組聲明如下:

Thread[] workers = new Thread[50]; 

我不知道所有的字符串數組中,他們通過一些計算得到的,然後我不噸有所有的人,當我啓動這一進程,但我有一個返回下一個方法:

public string next() 
{ 
    //my code 
} 

我已經能夠運行所有的50個線程這樣的:

for (int x = 0; x < 50; x++) 
{ 
workers[x] = new Thread(new ParameterizedThreadStart(myMethod)); 
workers[x].Start(next()); 
} 

哪個迅速啓動所有50個線程「在同一時間」,然後我的日誌(由myMethod的餵養)獲得近50個反應在同一時間(1?1.5秒)

如何獲得每一個剛剛完成的線程都考慮到Thread類沒有公開任何事件或類似的東西而再次運行下一個字符串?

注:我已經做了一些性能測試,我更喜歡使用常規線程而不是BackgroundWorkers。

在.net 3.5中使用C#。

+0

是否使用TPL通過Rx擴展選項?有非常容易的選擇... – 2010-10-08 19:54:06

+0

-1我不明白你的問題。大聲笑,只是開玩笑+1 – 2010-10-26 11:30:13

+0

@Ninja你有我想知道什麼是這個問題混淆了一會兒..哈哈 – Marcelo 2010-10-26 12:25:11

沙发
0
5

這聽起來像你應該使用ThreadPool。然後,您可以只執行:

while(MoreWorkIsAvailable) 
{ 
    string nextString = next(); 
    ThreadPool.QueueUserWorkItem(new WaitCallback(myMethod), nextString); 
} 

線程池,甚至可以讓你把硬工資帽上的線程的最大數量,允許通過SetMaxThreads在某一時間運行。

+0

+1我從來沒有使用ThreadPool,但是如果這項工作是對問題的完美解決方案。 – Kendrick 2010-10-08 19:35:49

+0

難道這不會把我在內存中排列的一百萬個字符串放在隊列中嗎? – Marcelo 2010-10-08 19:50:03

+0

它會 - 如果你處理一百萬條目,它可能是矯枉過正的 - 在這種情況下,等待句柄可能是一個更好的選擇... – 2010-10-08 19:52:57

板凳
0
1

您可以像使用ADO.NET或枚舉一樣使用next()方法。保持返回值直到完成,然後返回null。讓你的線程在while循環中從方法中消耗,直到方法返回null,然後退出。

爲了澄清,有一些你需要做的背景工作。你必須讓你的next()方法是線程安全的,所以你總是返回下一個值而不重複。您還必須將引用傳遞給對象,而不是next()方法的輸出。線程安全的部分是它的唯一真正複雜的事情,它只是意味着你必須鎖定您的next()方法的一部分:

  • 確定下一個字符串值,使用
  • 和更新任何對象狀態

一旦狀態穩定,就可以釋放該鎖並且下一個線程可以獲取其字符串以進行工作。

編輯:雖然我喜歡簡單的ThreadPool方法,但這仍然可以走。在這種情況下,代碼將是這樣的:

YourStringGenerator generator; 
//instatiate generator 
for (int x = 0; x < 50; x++) 
{ 
    workers[x] = new Thread(new ParameterizedThreadStart(myMethod)); 
    workers[x].Start(generator); 
} 

然後

myMethod(YourStringGenerator generator) 
{ 
    String compare; 
    while((compare=generator.next())!=null) 
    { 
     //do comparison, etc. 
    } 
    return; 
} 

下一個()看起來像

String next() 
{ 
    lock(this.index) //see msdn for info. Link below. 
    { 
     //determine next string 
     //update index 
    } 
    //generate or get next string from list and return it 
    //or if empty, return null 
} 

see msdn for info

+0

@MarceloRamires:這是自我管理這個問題。你需要讓自己的線程方法獲取工作,這將導致同步問題發揮作用。這就是爲什麼ThreadPool在這些情況下更好... – 2010-10-08 19:32:23

+0

不,這段時間進入線程(即在myMethod())中。開始一個線程會有開銷,所以有一個適合您的處理器和問題的最佳線程數。爲每個比較產生一個新線程可能比在主線程中做得慢。 – Kendrick 2010-10-08 19:33:43

+0

您不應該在一段時間內啓動線程,而是在50個線程中的每一個線程上運行一段時間,直到仍然有一個字符串要處理,並由next()方法返回。 – treaschf 2010-10-08 19:34:48

地板
0
2

你不能得到一個事件由線程系統。你可以用Thread.Join等待一個線程,但是你不能等待任何線程並獲得第一個完成的線程。您最好的方法是在每個線程中放置一個while循環,輪詢工作項的隊列,直到隊列爲空。

4楼
0
1

添加到你的線程方法不僅僅處理一塊數據,而是「下一個未聲明」的數據。

您將希望圍繞枚舉器的MoveNext進行一些同步,並將該引用的副本抓取到Current。沒有兩個線程能夠推進統計員並同時獲取物品。然後,一旦你有你的參考,釋放同步鎖定並做你的驗證。

您可能還想看看Microsoft的Px並行擴展,以利用多個CPU(核心?)。我沒有使用它,但如果您的驗證是純粹的算法(而不是針對數據庫進行檢查),多處理器參與是擊敗單線程模型的唯一方法。

0
votes
answers
31 views
+10

如何在visual studio 2017中添加reportviewer控件vb .net

1

如何在visual studio 2017中添加reportviewer控件? 控制安裝如何在visual studio 2017中添加reportviewer控件vb .net

,但我不能成VB .NET應用程序的形式

控制只示出下面的從 enter image description here

沙发
0
0

步驟1中,運行中的包管理器控制檯以下命令: *** Install-Package Microsoft.ReportingServices.ReportViewerControl.Winforms - ***版本140.340.80

步驟2,刪除工具箱中列出的ReportViewer控件。這是一個版本爲12.x的控件。

步驟3,右鍵點擊任何地方在工具箱,然後選擇選擇項....

步驟4,在.NET框架組件,選擇瀏覽。

第5步,從您安裝的NuGet包中選擇Microsoft.ReportViewer.WinForms.dll。 NuGet軟件包將安裝在項目的解決方案目錄中。 dll的路徑將類似於以下內容: {解決方案目錄} packages Microsoft.ReportingServices.ReportViewerControl.Winforms。{version} lib net40 步驟6,新控件應顯示在工具箱中。

板凳
0
0

如果以上仍方法可以在報表查看器控件未添加到工具箱中,然後嘗試直接拖動DLL到工具箱:

1,打開Windows資源管理器,然後導航到DLL

2拖動DLL和工具箱拖放到Visual Studio中,正是您想要的部件出現

{解決方案目錄} 這意味着工作的項目文件夾 C:用戶 XXXX XXXX 回購 WindowsApp4 例如,這個項目定位我答 獲取到以下路徑: C:用戶 XXXX XXXX 回購 WindowsApp4 包 C:用戶 XXXX XXXX 回購 WindowsApp4 包 Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80 C: Users xxxx xxxx repos WindowsApp4 packages Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80 lib C: Users xxxx xxxx repos WindowsApp4 packages Microsoft.ReportingServices.ReportViewerControl。 Winforms.140.340.80 lib net40 在此文件夾下面是dll。

Microsoft.ReportViewer.WinForms.dll

拖放上述DLL到工具框

0
votes
answers
55 views
+10

如何一次在一個解決方案中的多個項目中編寫代碼? [Visual Studio/Xamarin]

0

我有一個解決方案,我有多個項目。現在我有3個不同的.sln文件,我已經連接到他們自己的.csproj,並且當我想與其中一個應用程序一起工作時,我只是啓動特定的.sln文件並且它工作得很好。我現在唯一的問題是這3個項目共享大量的代碼,所以我希望創建一個解決方案,我可以在其中一個項目中編寫代碼,其中的代碼也可以寫入其他項目中。它們共享相同的文件,文件名等。唯一的區別就是圖像,圖標等。當我做了一些快速的研究時,我發現了這個報價:如何一次在一個解決方案中的多個項目中編寫代碼? [Visual Studio/Xamarin]

「一個項目可以被多個解決方案引用。將你的庫或核心代碼放到一個項目中,然後在兩個解決方案中引用該項目。「

我想在每個.csproj文件和.stl文件中都需要進行一些其他參考/調整?

我腦子裏想的是,當編寫新代碼時,那個文件應該用更新的代碼覆蓋其他項目中的同一個文件。如何解決這個問題是我不知道的。

任何代碼示例,提示,技巧,指導非常感謝。

沙发
0
0

如何一次在一個解決方案中的多個項目中編寫代碼? [Visual Studio/Xamarin]

您可以創建項目以包含共享的代碼噸,然後將此項目添加到其他解決方案。然後,當編寫新代碼時,該文件應該用更新的代碼覆蓋來自其他項目的相同文件。

爲了實現這一點,請檢查下面的測試樣品的細節:

  1. 與共享代碼與下面的代碼創建一個項目,例如,ShareProject

    public void test() 
    { 
        System.Console.Write("This is only for Test update1"); 
    } 
    
  2. 創建一個解決方法1, Add - >existing project ...,選擇ShareProject

  3. 創建解決方案2,Addexisting project ...,選擇ShareProject

  4. 更新代碼在shareProject

enter image description here

通過此設置,當新的代碼寫入則該文件應覆蓋從更新的代碼的其他項目相同的文件。

0
votes
answers
36 views
+10

debuggerdisplay不按預期顯示字段值

2
public class A 
{ 
    [DebuggerDisplay("{DDBpp1()}")] 
    public byte[] Bpp = new byte[2]; 

    public string DDBpp1() 
    { 
     return "DDBpp"; 
    } 

    public string DDBpp2() 
    { 
     short result; 

     if (BitConverter.IsLittleEndian) 
     { 
      var bppCopy = new byte[2]; 
      Bpp.CopyTo(bppCopy, 0); 
      Array.Reverse(bppCopy); 
      result = BitConverter.ToInt16(bppCopy, 0); 
     } 
     else 
     { 
      result = BitConverter.ToInt16(Bpp, 0); 
     } 

     return result.ToString(); 
    } 
} 

DebuggerDisplay屬性(DDBpp1或DDBpp2)中使用哪種方法並不重要。調試器下的值列始終由{byte [2]}填充。我期望DDBpp1()方法的字符串「DDBpp」或DDBpp2()方法的短值。 此問題出現在VS15/17社區中。debuggerdisplay不按預期顯示字段值

是否可以在調試器下更改顯示字段值?如果實現Bpp作爲成員或財產

DebuggerDisplayAttribute on class

這沒有什麼區別:該類 -

+0

正如答案中已經解釋的那樣,這個屬性應該去上課。如果你需要一個會員,那麼你的會員應該是一個班級。事實上,如果數據太複雜而無法顯示,那麼你的班級本身可能會做很多工作。 – Phil1970

沙发
0
2

如果你把[DebuggerDisplay("{DDBpp2()}")]類本身,它會顯示bytes[]轉移INT16在調試器中的內容,並給它更多的屬性也沒有幫助。

[DebuggerDisplay("{DDBpp2()}", Name = "{DDBpp2()}", TargetTypeName = "{DDBpp2()}", Type = "{DDBpp2()}"] 
    public byte[] Bpp { get; set; } = new byte[2]; 

也許把它的類可以幫助你:

[DebuggerDisplay("{CDBpp2()}")] 
[DebuggerDisplay("{DDBpp2()}")] 
public class A 
{ 
    [DebuggerDisplay("{DDBpp2()}", Name = "{DDBpp2()}", TargetTypeName = "{DDBpp2()}", Type = "{DDBpp2()}")] 
    public byte[] Bpp { get; set; } = new byte[2] { 255, 255 }; 

    public byte[] Cpp { get; set; } = new byte[2] { 11, 28 }; 

    public string CDBpp2() => ToDebugStr(Cpp); 

    public string DDBpp2() => ToDebugStr(Bpp); 

    string ToDebugStr(byte[] b) 
    { 
     short result; 
     if (BitConverter.IsLittleEndian) 
     { 
      var bppCopy = new byte[2]; 
      b.CopyTo(bppCopy, 0); 
      Array.Reverse(bppCopy); 
      result = BitConverter.ToInt16(bppCopy, 0); 
     } 
     else 
     { 
      result = BitConverter.ToInt16(b, 0); 
     } 
     return result.ToString(); 
    } 
} 

如果你有MSDN文檔上給出的例子仔細看,你會看到屬性永遠只適用在課堂上 - 我很難過,爲什麼他們沒有把屬性限制在課堂上。

我看了一下source of debuggerDisplayAttribute.cs - 它適用於更多的類,你甚至可以使用多次。

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Delegate | AttributeTargets.Enum | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Assembly, AllowMultiple = true)]

將是VS不落實成員/屬性/等所有可能的結果。對於IDE,這就是爲什麼它不起作用。如果多次提供屬性,則只有第一個用在調試器視圖中:請參閱我的示例並對其進行調試。

+0

謝謝您的建議!不幸的是你的解決方案不能解決我的問題:(因爲我有很多其他領域,所以我不能在類級別顯示它們。我的解決方法是創建屬性DDBpp {get {(...)return result; }}然後滾動到該屬性而不是字段(在調試過程中) – ael

+0

@ael您可以使用VS中的「發送反饋」來抱怨/報告問題 - 也許它在17.9.99左右得到修復。沒有多少道具可以通過全部添加它們來鏈接它們(多個{}將被評估,並且組合的字符串顯示在調試器中:'[DebuggerDisplay(「{CDBpp2()} {DDBpp2()} etc etc」)] '會在課上輸出全部 –

板凳
0
2

你檢查:

「如果框 在工具選項對話框中選擇變量窗口對象的顯示原料結構檢查,然後DebuggerDisplay 屬性被忽略」

+0

檢查我的VS和我沒有選中它,所以它應該注意屬性。+ 1的提示??,可以爲後來的訪問者設置。 –

+0

@Olaf,我沒有選中複選框,也在VS2017下。 – ael

220
votes
answers
21 views
+10

Edit changeset comment after updates have been checked in to TFS

I have just switched to VS2012 and being unfamiliar with it, checked in some major changes without a comment. No other updates have been done since then and no other developers will have access to the code for another few hours.

Is there a way to add a comment to this changeset now thaht it has been checked in?

up vote 220 down vote accepted favorite
沙发
+2200
+50

執行此操作的一種相對簡單的方法是:

  • 在源資源管理器窗口中找到源樹中的適當點,也許是分支的根,但您也可以向下鑽取一點
  • ...或者,如果您知道變更集中包含的特定文件,則找到並選擇它(可以從“解決方案資源管理器”面板中完成)。
  • 右鍵單擊,選擇查看歷史記錄(源資源管理器)或源代碼管理 - &gt; 查看歷史記錄(解決方案資源管理器)

    • 在樹視圖中導航並選擇您感興趣的特定分支
    • 單擊頁面頂部的 Changesets 鏈接以顯示該分支的更改集。如果需要,請使用該面板右上角的高級搜索
    • 單擊您感興趣的changset的 Changeset [number] 鏈接
    • 在變更集詳細信息面板上方,單擊帶有加號的小氣泡簽名,將出現一個文本框,您可以輸入您的評論 - 點擊 Enter 將保存評論。

      請注意,可以通過此方法創建一系列註釋,這是通過桌面UI無法實現的。

大聲笑,正在看著它,只是沒有發生在我身上我可以改變它 - workabyte 2014年5月2日在20:52

那麼為什麼這不可能通過TFS項目頁面? - Christopher Townsend 2014年9月15日13:52

這並沒有真正改變變更集註釋,它只會添加一個在您查看變更集詳細信息時可見的註釋。 - Stephane Mathis 2016年1月28日16:32

我相信除非您擁有TFS的管理員權限,否則您只能編輯自己的評論。 - 蒂姆阿貝爾2016年4月14日9:09

我在TFS Online上有管理員權限,我無法通過網絡界面編輯我自己的簽到註釋,我只能添加更多註釋。如果辦理登機手續的評論包含誤導性錯字或其他類似內容,那會非常煩人。額外的評論與修復由於拼寫錯誤而可能發生的誤解的來源不同。 - 我可以通過Visual Studio編輯簽到註釋。 - Gertsen 2016年6月2日8:23

0
votes
answers
38 views
+10

Git失敗,出現致命錯誤。無法讀取用戶名

1

我一直在爲這個問題奮鬥了幾天。Git失敗,出現致命錯誤。無法讀取用戶名

我無法連接到我的Git項目(存儲在VisualStudio.com)從一臺特定的計算機(它在我的第二臺PC上工作)。每當我嘗試同步或克隆我的倉庫,VS2017詢問我的用戶憑據(兩次)和我收到以下錯誤:如果我改變可能已經造成的任何

Error: cannot spawn askpass: No such file or directory Error encountered while cloning the remote repository: Git failed with a fatal error. could not read Username for 'https://.visualstudio.com': terminal prompts disabled

不記得..

沙发
0
3

這主要是由於憑證已被憑證管理員記住。您應該刪除存儲在Credential Manager中的xxx.visualstudio.com的憑據。

例如,如果PC的操作系統是Windows,您可以打開憑證管理器 - > Windows憑證 - >通用憑證 - >刪除憑證,如git:https://xxx.visualstudio.com

enter image description here

然後再克隆,GIT中會讓你輸入該證書的回購。輸入可訪問VSTS帳戶的用戶名(電子郵件地址)和密碼後,應該克隆成功。

+0

工作正常!謝謝!!! – danbord

+0

我遵循了這些步驟,但它並沒有爲我工作。我使用VS2017並嘗試連接到VSTS git項目。我遇到錯誤 推送到遠程存儲庫時遇到錯誤:Git失敗,出現致命錯誤。 遇到Win32Exception。 無法寫入證書 不能產卵askpass:沒有這樣的文件或目錄 不能爲「https://xxxxxx.visualstudio.com」讀取用戶名:終端提示禁用 推到https://xxxxxx.visualstudio.com/_git/StockTrace –

板凳
0
1

只需將您的Visual Studio更新到最新版本即可。這個錯誤已被報告,並被最新的更新修復。爲我工作。

+0

而且應該不可能,因爲你沒有管理權限; git遠程設置網址來源用戶名:[email protected]/username/repo.git - 爲我工作。注意:將在./git/config中以明文形式存儲您的github密碼 –

0
votes
answers
30 views
+10

Which version of MVC am I using?

I can't find it for some reason, feeling a little dumb. How do I know? I'm using .net 4 with VS2010.

0
votes
answers
21 views
+10

What replaces cellpadding, cellspacing, valign, and align in HTML5 tables?

In Visual Studio, I'm seeing these warnings:

  • Validation (HTML 5): Attribute 'cellpadding' is not a valid attribute of element 'table'.
  • Validation (HTML 5): Attribute 'cellspacing' is not a valid attribute of element 'table'.
  • Validation (HTML 5): Attribute 'valign' is not a valid attribute of element 'td'.
  • Validation (HTML 5): Attribute 'align' is not a valid attribute of element 'td'.

If they are not valid attributes in HTML5, what replaces them in CSS?

0
votes
answers
41 views
+10

C++頭文件錯誤:基類未定義

-2

我目前收到很多挫折包括在我的起始項目中的頭文件。到目前爲止,我有一個頭文件鏈接到我的基本文件,我不斷收到編譯無法讀取我的基類的錯誤。C++頭文件錯誤:基類未定義

我認爲讀取頭文件時出現問題。我該怎麼辦?

//更新,現在它顯示與構建

主CPP文件

#include <string> 
#include "animal.h" 
using namespace std; 
enum COLOR { Green, Blue, White, Black, Brown }; 

int main() { 

cout << "Starting" << endl; 
int value = 0; Mammal *zoo[3]; 
int i = 0; 

cout << "Program exiting …. " << endl; 
return 0; 
} 

頭文件的編譯錯誤

#include <iostream> 
#include <string> 
#ifndef HEADER_H 
#define HEADER_H 

using namespace std; 
enum COLOR { Green, Blue, White, Black, Brown }; 

class Animal { 
public: 
Animal() { 
    cout << "constructing Animal object " << _name << endl; 
} 
~Animal() { 
    cout << "destructing Animal object " << _name << endl; 
} 

Animal(std::string n, COLOR c) { 
    _name = n; _color = c; 
    cout << "constructing " << _name << " Color " << 
     endl; 
} 

virtual void speak() const { cout << "Animal speaks " << endl; } 
//void speak() const { cout << "Animal speaks " << endl; } 
virtual void move() = 0; 

void setName(std::string n) { _name = n; } 
void setCOLOR(COLOR c) { _color = c; } 

private: 
std::string _name; COLOR _color; 
}; 

class Mammal : public Animal { 
public: 
Mammal() {} 
Mammal(std::string n, COLOR c) { 
    setName(n); 
    setCOLOR(c); 
    cout << "constructing Mammal object " << endl; 
} 
~Mammal() { cout << "destructing Mammal object " << endl; } 
}; 

#endif 
+0

在使用之前,不應該在'animal.h'中聲明'COLOR'? – user0042

+0

'COLOR'在cpp文件中定義,並且在頭文件中不可見,您正在使用'cout'和其他來自頭文件中'std'名稱空間的東西,而沒有正確地預先加入':: std ::'。 – VTT

沙发
0
0

使用pragma once和包括警衛一起多餘的。刪除任一個。

如果您在標頭中使用string,請不要忘記它需要std::前綴。

COLOR必須移動到頭文件。

// #pragma once 
#ifndef HEADER_H 
#define HEADER_H 

using namespace std; 
enum COLOR { Green, Blue, White, Black, Brown }; 

您還需要定義setName

結論:

在C和C++,每一種類型或函數必須聲明或定義第一再使用,而不是相反。

+0

它不是多餘的,一次使用'pragma'和頭部守衛可能會有不同的效果,而不是僅使用其中的一個。 – VTT

+0

@VTT,你在談論典型的實際用法嗎? – Arash

+0

@ArashMohammadi _「不要忘記在頭文件中使用namespace std' ...」_我能想到的最糟糕的建議。 – user0042