!C#高手过来看看!TypeBuilder问题!???

zhangjianwen 2002-12-16 04:08:50
问题是这样的:
假设有一字符串为Myclass,同时他是一个类名,现在我想用这个字符串来new
一个对象;就是 Myclass a=new Myclass();的效果。但Myclass是字符串!
用什么方法解决?
...全文
226 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
whxbb 2002-12-18
  • 打赏
  • 举报
回复
MyClass 必须指定命名空间。

Type type = Type.GetType("MyNamespace." + Myclass);
object instance = Activator.CreateInstance(type);
zhangjianwen 2002-12-18
  • 打赏
  • 举报
回复
楼上的,不行啊:(
whxbb 2002-12-18
  • 打赏
  • 举报
回复
用 reflection

Type type = Type.GetType(Myclass);
object instance = Activator.CreateInstance(type);

zhangjianwen 2002-12-17
  • 打赏
  • 举报
回复
没人帮我?:(
zhangjianwen 2002-12-17
  • 打赏
  • 举报
回复
没人知道阿?
zhangjianwen 2002-12-17
  • 打赏
  • 举报
回复
谢谢!以上都不是我想要的
Lostinet 2002-12-16
  • 打赏
  • 举报
回复
using System;
using System.Reflection;

namespace ConsoleApplication2
{

abstract class BaseClass
{
abstract public void W();
}

class ClassA:BaseClass
{
override public void W()
{
Console.WriteLine("ClassA:W()");
}
}
class ClassB:BaseClass
{
override public void W()
{
Console.WriteLine("ClassB:W()");
}
}



class App
{
[STAThread]
static void Main(string[] args)
{
string[] classes=new String[]{"ClassA","ClassB"};
for(int i=0;i<10;i++)
{
string strName=classes[new Random().Next()%classes.Length];
BaseClass bc=AppDomain.CurrentDomain.CreateInstance("ConsoleApplication2","ConsoleApplication2."+strName).Unwrap() as BaseClass;
bc.W();
}
}
}
}
dy_2000_abc 2002-12-16
  • 打赏
  • 举报
回复
请参考:
http://expert.csdn.net/Expert/topic/1185/1185321.xml?temp=.2095148
hongshun 2002-12-16
  • 打赏
  • 举报
回复
这个很难实现. 其实,你在要求 程序运行的时候 执行 编译的功能.

110,561

社区成员

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

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

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