如何从对象中按名称获取类模型?

时间:2014-04-18 16:34:26

标签: c# object

我有两个班级模型(客户和订单)

  public class customer
  {

    private string _cid;
    public string cid
    {
        get { return _cid; }
        set { _cid = value; }
    }

    private string _name;
    public string name
    {
        get { return _name; }
        set { _name = value; }
    }

    private string _Tel;
    public string Tel
    {
        get { return _Tel; }
        set { _Tel = value; }
    }

  }
  // ===============================
  public class order
  {

    private string _oid;
    public string oid
    {
        get { return _oid; }
        set { _oid = value; }
    }

    private string _date;
    public string date
    {
        get { return _date; }
        set { _date = value; }
    }

    private customer _cust = new customer();
    public customer cust
    {
        get { return _cust; }
        set { _cust = value; }
    }

  }

我从这两个类模型中创建了一个关系对象 如下

        order obj = new order
        {
            oid = "1",
            date = "12/12/2014",
            cust.cid = "1",
            cust.name = "mohamed",
            cust.Tel = "00201143683774"
        };

现在我有一个对象有很多类模型,它的名字是obj。
问题是 过滤它的最短方法是什么,如下所示。

  public object filterobj(object objname,string modelname)
  {
  // ??? how filter object and return class model by his name properties collection 
  }

 filterobj(obj , "order");    //  return order class model properties collection (oid & date)
 // or 
 filterobj(obj , "customer"); //  return customer class model properties collection (cid , name & Tel)

1 个答案:

答案 0 :(得分:0)

这似乎不是解决问题的好方法。我认为您将关系数据库概念与OOP混淆。

首先,您不应直接初始化_cust。通过酒店来做。毕竟,您需要字段_cust的有效输入,对吧? (即customer对象已被实例化。)

其次,为什么需要过滤它?您可以使用属性customerorder对象中检索cust对象。查看filterobj函数,它返回一个对象。您仍然需要检查它是否返回了正确类型的对象(customerorder)。

所以,总结一下,这是我的答案:

  1. 删除字段_cust
  2. 的初始化部分
  3. 如果要检索订单的客户,请使用属性cust
  4. 类似地,如果要检索消费者的订单,请使用属性order。但我认为情况并非如此。
  5. 我希望它有所帮助。我是新来的。