2012-02-02 27 views
1

今天不知怎的,當我輸入:Visual Studio 2010中的問題圍繞全球:: System.Exception的

try {} catch {} 

我得到這個:

try 
{  
} 
catch (global::System.Exception ex) 
{ 
} 

但它應該只是:

try 
{  
} 
catch (Exception ex) 
{ 
} 

會發生什麼?我如何回到Exception

+2

有什麼問題?只是模板?你明白這兩個在代碼中有相同的含義,對吧? (假設您沒有其他類型稱爲「例外」。) – 2012-02-02 13:28:50

+1

實際問題是什麼?如果您指的是語法差異;他們是一樣的。您可以刪除'gloabl :: System.'部分以返回到'Exception'。 – 2012-02-02 13:28:52

+0

@SamuelSlade問題是我沒有改變東西,但我得到了gloabl :: System。爲什麼? – Terminador 2012-02-02 13:30:03

回答

2

以下編程'導致global::System.Exception如果將括號之間的光標的Main方法並鍵入try並按[TAB]兩次,即觸發代碼段一個try/catch。

因此 - 你有一個名爲Exception的類在你的項目/引用程序集中的某個地方定義過,還是你定義了一個頂級命名空間System?其中之一或組合可能會導致這種情況。還請注意,代碼示例沒有列出任何using聲明,因此可能是一個促成因素。

namespace ExceptioWuh 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

     } 
    } 

    namespace System 
    { 
     class Exception : global::System.Exception 
     { 
     } 
    } 
} 

由於沒有所謂的catchcatch (System.Exception)Exception目前的結果,所以我認爲這是導致此相當的特定場景的自定義類型。