匿名类型的性能极差,是否建议使用?

颤菊大师 2010-01-26 10:01:06
用 匿名类型 作为传递参数 和 用数组进行传递参数。
两者之间的性能差距很大,个人感觉有20倍-40倍之间。

但为什么 MVC 中却大量使用呢?
...全文
284 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
ft2130854 2011-01-30
  • 打赏
  • 举报
回复
太神奇了
白云任去留 2010-01-26
  • 打赏
  • 举报
回复
有意思..
  • 打赏
  • 举报
回复
例如,你下载个许多人经常学习的模拟正规产品的.net“范例”程序,然后修改其中几条语句成为你认为性能差的语句,然后你评估一下这种“性能极差”到底值几毛钱呢?
  • 打赏
  • 举报
回复
折合成金钱损失,才算损失,别人心疼。你应该用测试来计算实际程序中的损失(而不是仅仅假设整个程序只有这一条语句),然后折合成金钱。

如果你只是个人爱好某条语句执行得快,而别人爱好的东西更加具有整体性,又怎样?
vrhero 2010-01-26
  • 打赏
  • 举报
回复
var o=new {Name="Anonymous",Message="Hello world"};

这才叫匿名类型...
ofei 2010-01-26
  • 打赏
  • 举报
回复
你那是反射的性能损失

干脆你使用字典传参
gbb21 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mrlen 的回复:]
引用 3 楼 gbb21 的回复:
唯一的答案就是你用法不太对吧~
性能应该是一样的~

啊?麻烦你举一个常用的?

我是这样,用反射。
C# codepublicstaticvoid Test(Test2 i,object parameters)
{object o;foreach (var pin parameters.GetType().GetProperties())
{
o= p.GetValue(parameters,null);
i.Parameters.Add(p.Name, o);
}
}//Test( new Test2(),new {a="a",b="b"};
[/Quote]
首先,你这个叫匿名类?这也太搞了吧~你去搜索下啥叫匿名类。
再说,你这叫做反射,反射速度不慢上50倍就很对得起你了好吧?反射一般不到迫不得已绝不使用。
junshanhudazhaxi 2010-01-26
  • 打赏
  • 举报
回复
匿名类型不是真的匿名,如果匿名类型不能推断出真实的类型是要出错的。
颤菊大师 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gbb21 的回复:]
唯一的答案就是你用法不太对吧~
性能应该是一样的~
[/Quote]
啊?麻烦你举一个常用的?

我是这样,用反射。
 public static void Test(Test2 i, object parameters)
{

object o;
foreach (var p in parameters.GetType().GetProperties())
{
o = p.GetValue(parameters, null);
i.Parameters.Add(p.Name, o);
}
}

//Test( new Test2(),new {a="a",b="b"};
gbb21 2010-01-26
  • 打赏
  • 举报
回复
唯一的答案就是你用法不太对吧~
性能应该是一样的~
颤菊大师 2010-01-26
  • 打赏
  • 举报
回复
哈欠~~~~囧~~~
颤菊大师 2010-01-26
  • 打赏
  • 举报
回复
囧。这个版块现在比较活跃~~~
gbb21 2010-01-26
  • 打赏
  • 举报
回复
刚才回帖很长,然后居然不见了,算了……
加油馒头 2010-01-26
  • 打赏
  • 举报
回复
匿名类有匿名类的好处


这个作为结贴的答案,太神奇了。。。。

颤菊大师 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 vrhero 的回复:]
除了那些答题机器人没人想要你的分...

你的问题6、7楼已经给出了答案...你自己看不明白而已...
[/Quote]

好吧。我道歉。我的问题表达的不是很清楚。但是我不认为6楼的回复是什么答案。
我当然明白是反射带来的性能损失,我就是要寻找良方,否则问这个问题,是为了体现我不懂反射?

我的原意是:
用匿名参数作为传递参数,传递过去后,解开这个【匿名类型参数】的属性,用反射很耗,那么,为什么MVC会大量使用?
pdsnet 2010-01-26
  • 打赏
  • 举报
回复
vrhero 2010-01-26
  • 打赏
  • 举报
回复
除了那些答题机器人没人想要你的分...

你的问题6、7楼已经给出了答案...你自己看不明白而已...
颤菊大师 2010-01-26
  • 打赏
  • 举报
回复
知道我为什么把分给【他】,一直在论坛游荡,对你算是比较敬佩与敬仰的。
但我必须说实话,在这个问题中,你的回答比他还烂。


错字
颤菊大师 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 vrhero 的回复:]
引用 14 楼 soita 的回复:
匿名类有匿名类的好处

可以怀疑你在倒粪...
[/Quote]

知道我为什么把分给你,一直在论坛游荡,对你算是比较敬佩与敬仰的。
但我必须说实话,在这个问题中,你的回答比他还烂。
颤菊大师 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 vrhero 的回复:]
你传递匿名类型参数不代表你这段代码跟匿名类型有关系...

你不会连这么简单的逻辑都不懂吧...
[/Quote]

好像我的问题就是

匿名类型 作为传递参数 和 用数组进行传递参数。
那我的那句代码是否有误?
加载更多回复(7)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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