c# PropertyInfo类的问题

protectedobjectAssembleObject(Typetype,System.Data.IDataReaderreader){objecto=Activat... protected object AssembleObject(Type type, System.Data.IDataReader reader)
{
object o = Activator.CreateInstance(type);

if (o == null)
return null;

PropertyInfo[] properties = type.GetProperties();//声明一个获取类型属性的变量

for (int i = 0; i < reader.FieldCount; i++)
{
PropertyInfo property = type.GetProperty(reader.GetName(i));//得到第i列的所有属性
object val = reader[i];//第i列

if (val != DBNull.Value && property != null && property.CanWrite)//判断对象是否为空,属性是否为空,属性是否可写!如果都为true
property.SetValue(o, reader[i].ToString(), null);//o对象,reader[i]对象的新值,索引器空的
}

return o;
}

谁帮我读读这段程序!每一行都需要注释下啊!
object val = reader[i];//第i列

这行呢?
展开
 我来答
Fade1234
2008-09-08 · TA获得超过1100个赞
知道小有建树答主
回答量:945
采纳率:0%
帮助的人:842万
展开全部
貌似都有注释了嘛,只有第一行
object o = Activator.CreateInstance(type);
这是建立了一个type类型的实例

这整个方法是在做数据库到实例类的映射,把读出的各字段赋到创建的对象里面返回

问题补充:object val = reader[i];//第i列

这行呢?

这行是reader的第i列,也就是数据库的第i列读出到val里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iceser
2008-09-09 · TA获得超过2708个赞
知道大有可为答主
回答量:695
采纳率:100%
帮助的人:440万
展开全部
IDataReader 接口定义了两种索引器。

所以访问当前游标指行的行数据,可以有两种方式

object val = reader[ "colName" ]; 访问列名为colName的值。
object val = reader[ 0 ]; 访问从左到右,第几列的值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式