[C#]关于一个反射的问题。

离子漂浮物 2007-10-10 11:46:04
public struct dfInfoPic
{
decimal _ID;
public decimal ID
{
get { return
_ID; }
set { _ID = value; }
}
}

private T test<T>(T df,string property) where T : struct
{
df.GetType().GetProperty(property).SetValue(df, 3m, null);
return df;
}

dfInfoPic df = new dfInfoPic();
df.ID = 1m;
Response.Write(df.ID);
Response.Write("<br/>");
object sid = df;
sid.GetType().GetProperty("ID").SetValue(sid, 2m, null);

Response.Write(((dfInfoPic)sid).ID);
Response.Write("<br/>");
Response.Write(this.test<dfInfoPic>(df, "ID").ID);


预计结果应该是:
1
2
3
但现在的运行结果却是
1
2
1

想问一下,两行红色部份的代码有什么不同?
...全文
139 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
danjiewu 2007-10-10
  • 打赏
  • 举报
回复
private T test <T >(T df,string property) where T : struct
{
object t = df;
df.GetType().GetProperty(property).SetValue(t, 3m, null);
return (T)t;
}

跟反射没关系,看下装拆箱和传值。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧