C#程序,能否在运行时,为一个类型增加方法?

simonter02 2012-03-31 04:48:15
python这样的动态语言,"类型"是可以动态创建的。
而C#似乎和c++/java一样是静态类型语句,类型本身的创建依赖于字节码里面已经编译好的内容。
对吗? C#程序,能否在运行时,为一个类型增加方法?
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2012-03-31
  • 打赏
  • 举报
回复
还有一个技术,可以通过C#的扩展方法给已知类型添加扩展方法。但由于是扩展方法,你动态添加了也反射不到,只能直接调用,而编写代码的时候还不知道该类型是否有那么一个扩展方法,C# 4.0里面的dynamic关键字转换后不知道是否可以,你可以试试。
qldsrx 2012-03-31
  • 打赏
  • 举报
回复
已经存在的类型,无法添加方法到它当中去,但是你可以在运行时动态创建静态方法,只要方法的参数里包含该类型,将该类型的实例传递进去操作,那么和给已知类型添加方法有啥区别?
orochiheart 2012-03-31
  • 打赏
  • 举报
回复
没听说过
贝贝壳壳 2012-03-31
  • 打赏
  • 举报
回复
不能改变原有的类的方法,但你可以用反射技术动态创建新的类型
bdmh 2012-03-31
  • 打赏
  • 举报
回复
我认为no
cheng2005 2012-03-31
  • 打赏
  • 举报
回复
应该是不行。

扩展方法,扩展属性 应该都不是你想要的东西。

110,536

社区成员

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

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

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