2014-10-31 23 views
0

我在.NET C#web應用程序中創建了一個名爲「Group」的類。已有類的名稱

當我嘗試在其他類中訪問此類時,我沒有遇到任何麻煩,但是,在我嘗試訪問同一個類時,在代碼中的某些點上,它引用了另一個內置類「 集團「太低了。 正則表達式

我的問題:如何直接指定我正在嘗試訪問不同的類?如果在不同的庫下有兩個類。以同樣的方式命名,我只想輸入XYGroup爲了指定區別,但我不知道我需要鍵入什麼才能訪問我的代碼中手動創建的類。

編輯:據我所知,我沒有用於我的web應用程序的命名空間。我正在使用WebForms來開發我的網站,因此就我而言,沒有創建命名空間。

在此先感謝。

+1

指定您的班級的全名 - 與所有命名空間 – IVAAAN123 2014-10-31 07:53:09

+0

@ IVAAAN123請閱讀帖子編輯。 – 2014-10-31 07:58:55

+0

如果你沒有命名空間,那麼你應該創建它們 – IVAAAN123 2014-10-31 08:11:16

回答

1

我如何可以直接指定,我試圖訪問一個不同的類

,你可以:

  • 使用完全合格的名稱,例如

    MyNamespace.Group x = new MyNamespace.Group(); 
    
  • 避免增加一個using指令爲System.Text.RegularExpressions,除非你真的需要它(那不是可能完全合格的用途)
  • 通過using指令使用別名:

    using MyGroup = MyNamespace.Group; 
    ... 
    MyGroup x = new MyGroup(); 
    

如果您沒有命名空間聲明,則可以參考global::Group而不是MyNamespace.Group ......但我懷疑你是有一個命名空間,我會敦促你創建一個,如果你還沒有。

+0

請看看我的編輯。 – 2014-10-31 07:59:40

+0

@TommyNaidich:如果你沒有命名空間,我會感到非常驚訝 - 如果你現在沒有,我強烈建議你*做*。查看代碼隱藏以嘗試查找名稱空間聲明。有一個替代方案,我會添加到我的答案。 – 2014-10-31 08:00:52

+0

您提出的「global :: Group」方法對我來說完美無缺。至於第二點 - 我從來不必爲我的Web應用程序創建一個名稱空間,我也無法看到在此特定項目中做到這一點的真正原因。當我需要訪問我的類時,爲什麼不簡單地使用「global :: Group」,而不是爲我的類指定一個全新的名稱空間,然後更改我的項目中的每條代碼行以適應適當的更改? 答案很快就會被接受,謝謝您的輸入。 – 2014-10-31 08:05:27

0

如果你只是想訪問的代碼你自己的類,你可以爲它創建與using關鍵字的別名:

using Group = My.Namespace.Group; 

(在你的類的頂部,除了正常使用的指令) 。

否則,它總是能夠在代碼中使用完全合格的名稱

var Group = new My.Namespace.Group; 
0

您可以使用using指令:

using Group = X.Group; 

var group = new Group(); \\ default Group class comes from X namespace; 
var group2 = new Y.Group(); \\ if you want other class, specify full namespace. 
+0

請看看我的編輯請。 – 2014-10-31 08:00:48

1

對這個問題的保護的第一層要小心給你的類型這樣的通用名稱。這是最好的解決方案。

除非這一點,那麼你可以做兩件事情之一:

  • 完全限定在您使用它的類型名稱。例如。 MyNamespace.Group
  • 通過using聲明類型別名。例如。 using MySpecialGroup = MyNamespace.Group;
+0

請看看我的編輯。 – 2014-10-31 07:59:55

相關問題