从另一个类访问类中声明的列表

时间:2015-02-24 07:15:11

标签: c# asp.net entity-framework

我在课堂上宣布了一个名单。我想从另一个类访问该列表。如何从另一个类的模块中访问列表?

// 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 个答案:

答案 0 :(得分:2)

由于列表是public,您只需创建一个类的实例并像访问一样访问它,

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

来自MSDN

  

通过在对象名称

之后添加句点来访问对象中的字段

但作为良好的编程习惯,我建议您使用Accessors而不是制作字段public(需要知道原因,请检查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 :(得分: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;
        }

    }
}