当前位置:编程学习 > C#/ASP.NET >>

C#如何创建未知类型类的数组?

 我想在SelectObject函数中创建User数组并赋值,但在SelectObject函数中好像并不知道传入的值是IEntity的那个子类,并请问如何创建该数组

        User u = new User();
        User_Field uf = new User_Field();
        db.SelectObject(u, uf,"gender", "0");
//User是IEntity的子类,User_Field是IField的子类

       public int SelectObject(IEntity entity, IField field, string attribute, string selectID, params string[] formNum)
        {
            string infoNum; //user_info表编号

            if (formNum.Length != 0)
                infoNum = formNum[0];
            else
                infoNum = "";

            StringBuilder sb = new StringBuilder();//字符串构造器
            sb.Append("SELECT * FROM `");

            PropertyInfo Fpro = field.GetType().GetProperty("TABLE_NAME"); //取得存储表名的属性
            sb.Append(Fpro.GetValue(field, null)); //取得表名
            sb.Append(infoNum);
            sb.Append("` WHERE ");
            PropertyInfo Fpro_ = field.GetType().GetProperty("FIELD_" + attribute.ToUpper());
            sb.Append(Fpro_.GetValue(field, null));
            sb.Append("=");
            sb.Append(selectID);
            sb.Append(";");

            mc.CommandText = sb.ToString().Trim();
            mc.Connection = myConnection;
            mdr = mc.ExecuteReader(); //执行查询

            while (mdr.Read()) ;
            {
                PropertyInfo[] Epros = entity.GetType().GetProperties();
                for (int i = 0; i < Epros.Length; i++) //将查询获取的数据赋给实体类
                {
                    /*
                     * 因为MySql中用于存储bool类型数据的类型是tinyint,该类型在返回数据给前台时,无法转换成bool类型,所以需要作判断
                     */
                    if (Epros[i].PropertyType == typeof(bool))
                    {
                        if (mdr.GetValue(i).ToString() == "0" || mdr.GetValue(i).ToString() == "")
                            Epros[i].SetValue(entity, false, null);
                        else
                            Epros[i].SetValue(entity, true, null);
                    }
                    else
                        Epros[i].SetValue(entity, mdr.GetValue(i), null);
                }

;            }

            mdr.Close();
            mc.Dispose();

        } --------------------编程问答-------------------- 换成 object --------------------编程问答-------------------- 帮顶一下~~~~~~~~~~~~~~~~~~~~~~ --------------------编程问答-------------------- 放在ArrayList中 --------------------编程问答-------------------- 能说具体点吗...不会 --------------------编程问答-------------------- 未知类型可以用泛型,但不是很明白你的意思 --------------------编程问答-------------------- object[]即可

函数内部自己用is 判定 后转换 --------------------编程问答-------------------- 未知类型难道是变体形? --------------------编程问答-------------------- 要分 啊啊 --------------------编程问答-------------------- object
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,