2012-06-02 26 views
1

Gooday everyone。 1)我定義了一個公共結構的類文件(Films.cs)內,像這樣:公共結構不在其同類別之外

public struct CategoryDetails 
     { 
      ... 
     } 

該類不是放入命名空間,最重要的事情。

2)我有一個名爲Catalog的aspx文件,帶有代碼隱藏文件。 在代碼隱藏文件,我有這樣(在相同的水平Page_Load方法):

private void PopulateControls() 
     { 
      --> here I would like to have visibility to the CategoryDetails structure, which I don't 
     } 

我指定該Catalog.ascx.cs(代碼隱藏)文件中有一個命名空間。

  • 答:我到目前爲止所嘗試的是將Films類放入同一個 命名空間。沒有運氣。
  • B.你可以看到,結構是公開的。感謝您的幫助。 非常感謝。

回答

3

嘗試用Films.CategoryDetails代替。嵌套類/結構體在訪問時需要使用它們的包裝類前綴(如名稱空間)。 (除非你從包裝類中訪問它)

private void PopulateControls() 
{ 
    var categorydetails = new Films.CategoryDetails(); 
    //do stuff 
} 

編輯: 只是爲了澄清,從Films類中,你不再需要它的前綴。 (你可能仍然前綴,如果有不明確的命名問題):

namespace MyProject 
{ 
    public class Films 
    { 
     public struct CategoryDetails 
     { 
     } 


     public void DoStuff() 
     { 
      //both are valid 
      var categorydetails = new CategoryDetails(); 
      var otherdetails = new Films.CategoryDetails(); 
     } 

    } 
} 
+1

太棒了!這個地方非常棒。謝謝你,克里斯! –

+0

不客氣!是的,這個地方太棒了! –

1

你實現類電影或內部的類文件films.cs內部結構(在全球範圍內)。嘗試導航你的結構像這樣

var categorydetails = new global::CategoryDetails(); 
+0

該結構駐留在公共類Films(而不是Films類文件)中。如果我理解的話,你的建議適用於第二種情況。我會記住這種情況。謝謝你,哈姆雷特。 –

相關問題