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#