【问题标题】:Pass properties from array to a new class将属性从数组传递到新类
【发布时间】:2018-06-13 07:27:57
【问题描述】:

我正在使用一个 .net 应用程序,其中我有一个以数组形式返回值的 Web 服务,现在我想将此数组值传递给一个类并作为对私有对象的引用。但是由于我是编程新手,所以我不知道从哪里开始使用什么逻辑。 这是我创建的私有 obj,我想传递那些引用,其中 CT 是数组类型,clsIn 是来自另一个类的信息,但我不知道如何传递它们。

  private object TotInfo(clsIn In, CT ct)
    { 
        TotInfo objFromCD = new TotInfo();

        return objFromCD;

    }

这是我创建的新类,我想在其中传递来自 clsIn 和 CT 的所有值:

 public class TotInfo
{        
    // Object properties
    private string LAST_OFFER;
    private string LAST_OFFER_DATE;
    private string CLOSING_REASON;

    private string _NO;
    private string _STATUS;


    #region "GET/SET Property"

    public string NO
    {
        get { return _NO; }
        set { _NO = value; }
    }
    public string LAST_OFFER
    {
        get { return _LAST_OFFER; }
        set { _LAST_OFFER = value; }
    }
    public string LAST_OFFER_DATE
    {
        get { return _LAST_OFFER_DATE; }
        set { _LAST_OFFER_DATE = value; }
    }
    public string CLOSING_REASON
    {
        get { return _CLOSING_REASON; }
        set { _CLOSING_REASON = value; }
    }
    public string STATUS
    {
        get { return _STATUS; }
        set { _STATUS = value; }
    }
    #endregion


            #region "Costruttori"
    public CardsTotInfo() { }

    public CardsTotInfo(string No, string lastOffer, string lastOfferDate, string closingReason, string status)
    {

            this.NO = No;

            this.LAST_OFFER = lastOffer.ToUpper();
            this.LAST_OFFER_DATE = lastOfferDate.ToUpper();
            this.CLOSING_REASON = closingReason.ToUpper();

             this.STATUS = status.ToUpper();
    }
}

我已经通过了,或者说我认为我已经以正确的方式传递了 clsIn 的值,但我不知道如何传递数组类型 CT[] 的属性。 我真的需要帮助。 提前谢谢你。

【问题讨论】:

  • 我完全不明白你的问题。在调用 方法 TotInf 之前,您必须创建一个 cslInCT (可怕的类名)的实例。该方法根据您传递给它的内容创建一个对象。但是在您的情况下-由于您对这两个变量都没有做任何事情-您可以从该方法中完全省略它们。无论如何:在哪里你调用那个方法?
  • 我想你的问题来自于你有一个与你的 *class 同名的方法,这是一个很糟糕的主意。而是将你的方法命名为CreateTotInfo,这样更容易理解你的意思。
  • @HimBromBeere 这个想法是让这个 CT 数组从我的 Web 服务返回数据,对于从这个 WS 返回的每个元素,我必须去数据库中获取一些其他信息。比起作为类类型返回的 WS 和 DB 信息,我应该在网格中显示。所以在某些时候我必须合并这些值。我认为创建一个将具有来自这两个源的所有属性的类并创建一个新的 obj 将这个源作为参数,然后使用这个对象作为网格的数据源将解决我的问题。如果我的逻辑是错误的,请纠正我。
  • @HimBromBeere 在从 WS 和 DB 获取我需要的信息后,我正在网格的 onNeed_data_source 中调用 TotInf 方法

标签: c# .net arrays class


【解决方案1】:

如果 CT 是一个对象数组,并且您从 Web 服务获取的数据始终以相同的顺序出现,例如使用任意示例:

object[] CT = { 1, DateTime.Now, "foo", true }

如果您知道数组中的每个属性数据将始终位于相同的索引处(索引 0 中的 int 代表 Id,索引 1 中的 DateTime 代表最后一个报价日和等等)

我会说您需要“手动”设置每个属性:

 private object TotInfo(clsIn In, CT ct)
    { 
        TotInfo objFromCD = new TotInfo();

        //get data from DB

        //set the data from the array into the class properties
        objFromCD.Id = (int)ct[0];
        objFromCD.LastOfferDate = (DateTime)ct[1];
        objFromCD.ClosingReason = (string)ct[2];
        objFromCD.Available = (bool)ct[3];

        return objFromCD;

    }

【讨论】:

    猜你喜欢
    • 2013-11-13
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 2012-02-23
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多