2

同じ名前空間または異なる名前空間で、同じアプリケーションで「パブリック変数」を使用するにはどうすればよいですか?

例えば:

BookStore Web アプリケーションの最初の名前空間

namespace BookStore
{
    public partial class index : System.Web.UI.Page
    {
        public string command; // the public variable declared

同じ BookStore アプリケーションの 2 番目の名前空間

namespace Admin.BookStore // here i try to include the BookStore namespace..
{
    public partial class admin : System.Web.UI.Page
    {
        void access()
        {
            command = "something text" ;

commandここでは、インテリセンスで見られるべきだと思います。パブリック変数だったからだと思いますが、表示されません。

4

4 に答える 4

1

admin クラスでは、ファイルの先頭に次を追加することもできます。

Using BookStore;

ただし、index は静的クラスではないため、コマンド フィールドを使用できるようにするには、そのクラスのインスタンスが必要です。

Index indexInstance = new Index();
indexInstance.command = "something text";
于 2013-04-12T08:37:24.507 に答える
1

これを行うにはいくつかの方法がありますが、懸念されるのは、ページ間で同じ変数を設定しようとしていることです。セッション/静的なしでは、これは機能しません。

私のやり方 (初心者向け) は、クラスの継承から始めることです。

これを試して:

namespace BookStore
{
    public partial class index : BasePage
    {

    }
}

namespace Admin.BookStore
{
    public partial class index : BasePage
    {
        void access()
        {
            base.command = "something text"; // This accesses the BasePage variable
        }
    }
}

namespace BookStore
{
     public class BasePage : System.Web.UI.Page
     {
          // public static string command { get; set; } // Bad practice IMO
          public string command 
          {
               get {
                   if(Session["command"] != null) return Session["command"].ToString();
                   return String.Empty;
               }
               set {
                   Session["command"] = value;
               }
          }  
     }
}
于 2013-04-12T08:40:23.593 に答える
0

class を含むファイルadminで、ページの上部までスクロールし、次の行を挿入します。

using BookStore;

これは通常、追加先のファイルの名前空間宣言の上にあることに注意してください。これにより、クラス/ページを使用するクラスから見えるようになります。

あなたが与えた例に従うには、パブリックフィールドにアクセスするためにクラスのインスタンスが必要です:

var myIndexObject = new index();
myIndexObject.command = "my value";
于 2013-04-12T08:41:09.433 に答える