动态执行语句我该如何解决

dotbyte 2011-06-23 08:40:35
有一winform,winform中有一方法启动动态编译,但是我需要将此winform中的一些对象在动态编译的代码中使用,并且代码中还要对这些对象赋值,我该 怎么办?
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycproc 2011-06-25
  • 打赏
  • 举报
回复
动态的反射
threenewbee 2011-06-25
  • 打赏
  • 举报
回复
如果是 C#4 不妨试试 dynamic
xuexiaodong2009 2011-06-23
  • 打赏
  • 举报
回复
使用反射
老毕 2011-06-23
  • 打赏
  • 举报
回复
class MainClass
{
public static void Main(string[] args)
{
baseclass[] cls = new baseclass[2];
cls[0] = new baseclass();
cls[1] = new subclass();

// 对数组cls而言,存储的都是baseclass类型的对象
// 但是方法的调用,会动态地编译并执行subclass对象的方法
cls[0].SomeMethod();
//即便强制将cls[1]的类型从subclass转换为baseclass,仍会调用subclass的somemethod()
((baseclass)cls[1]).SomeMethod();
}
}

class baseclass
{
public int i = 0;
public virtual void SomeMethod()
{
Console.WriteLine("calling in baseclass method. i= {0}", this.i);
}
}

class subclass : baseclass
{
public override void SomeMethod()
{
this.i = 5;
Console.WriteLine("calling in subclass method. i= {0}", this.i);
}
}

结果:
calling in baseclass method. i= 0
calling in subclass method. i= 5
老毕 2011-06-23
  • 打赏
  • 举报
回复
你指的是这样吗?动态联编

class baseclass
{
public int i = 0;
public virtual void SomeMethod();
}

class subclass : baseclass
{
public override void SomeMethod()
{
this.i = 5;
base.SomeMethod();
}
}
yanele 2011-06-23
  • 打赏
  • 举报
回复
存数据库,需要时从数据库中提取出来赋值。
bdmh 2011-06-23
  • 打赏
  • 举报
回复
运行时动态执行吗


this可以换成你的类实例
MethodInfo m = this.GetType().GetMethod("方法名");
m.Invoke(this);

this.GetType().GetProperty("属性名").SetValue(...)

110,535

社区成员

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

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

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