0

みなさん、よろしくお願いします。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(コードビハインド)ファイルに名前空間があることを指定します。

  • A.これまでに試したのは、Filmsクラスを同じ名前空間内に配置することでした。運がない。
  • B.ご覧のとおり、構造は公開されています。ご協力ありがとうございました。とても有難い。
4

2 に答える 2

2

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();
        }

    }
}
于 2012-06-02T13:54:16.663 に答える
1

クラスFilms内またはクラスファイルfilms.cs内(グローバルスコープ内)にstructを実装していますか?このように構造体をナビゲートしてみてください

var categorydetails = new global::CategoryDetails();
于 2012-06-02T14:03:52.333 に答える