2015-02-24 191 views
0

我已經在一個類中聲明瞭一個列表。我想從另一個班級訪問該列表。我如何從其他課程的模塊訪問該列表?訪問另一個類在類中聲明的列表

// ClsUser.cs 
namespace WebLll.ApiPayment.BusinessObject 
{ 
    public class ClsUser 
    { 
     Data.MyEntity db = new Data.MyEntity("MyEntity1"); 

     public List<Data.GetPaymentRslt> BRIlstTxn = db.GetPayment(obj.PaymentCode, dtFrom, dtTo, obj.PaymentMode).ToList(); 

     //... remaining code 
    } 
} 
// clsWebLllAPI.cs 
namespace WebLll.ApiPayment.BusinessObject 
{ 
    public class clsWebLllAPI : clsBaseApi 
    { 
     public void Initialize(api_rule_setup obj) 
     { 
      // access the BRIlstTxn here 
     } 

    } 
} 

回答

2

由於名單是public你可以簡單地創建類和訪問它像後續的實例,

ClsUser clsuser=new ClsUser(); 
List<Data.GetPaymentRslt> mylist=clsuser.BRIlstTxn; // Simply access PUBLIC field 

MSDN

一個對象訪問一個場而完成在物件名稱後添加一段時間

但作爲良好的編程習慣,我建議你在製備場public使用Accessors(需要知道爲什麼,檢查this

建議代碼:

// ClsUser.cs 
namespace WebLll.ApiPayment.BusinessObject 
{ 
    public class ClsUser 
    { 
     Data.MyEntity db = new Data.MyEntity("MyEntity1"); 

     private List<Data.GetPaymentRslt> BRIlstTxn = db.GetPayment(obj.PaymentCode, dtFrom, dtTo, obj.PaymentMode).ToList(); 

     // Only GET . Provide protection over setting it 
     public List<Data.GetPaymentRslt> brIlstTxn{ 
      get 
      { 
       return BRIlstTxn; 
      } 
     } 

     //... remaining code 
    } 
} 
// clsWebLllAPI.cs 
namespace WebLll.ApiPayment.BusinessObject 
{ 
    public class clsWebLllAPI : clsBaseApi 
    { 
     public void Initialize(api_rule_setup obj) 
     { 
      ClsUser clsuser=new ClsUser(); 
      List<Data.GetPaymentRslt> mylist=clsuser.brIlstTxn; // Now you are accessing GET accesor rather than field directly 
     } 

    } 
} 
+1

我想你忘記了創建的實例ClsUser在你的第二個代碼塊中。你在第一塊 – failedprogramming 2015-02-24 07:33:22

+0

@failedprogramming - 呃,糾正..謝謝你:) – 2015-02-24 07:34:48

0

您可以使用Dot, member access operator訪問其他類的公共/內部/受保護數據成員(列表)。

namespace WebLll.ApiPayment.BusinessObject 
{ 
    public class clsWebLllAPI : clsBaseApi 
    { 
     public void Initialize(api_rule_setup obj) 
     { 
      ClsUser clsUser = new ClsUser(); 
      var lst = clsUser.BRIlstTxn; 
     } 

    } 
}