关于C#反射,根据类名创建对象。详情入内 我的想法是我写一个类,做一些事情。如果出问题就弹出提示框。这个提示框由别人做,但是由我这个类通过反射来创建。提示框框中的提示语也由我的这个类产生,在通过反射创建时,提示语作为参数传入那个类网上的内容看不懂,谁有相关麻烦把代码大致写一下,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接用异常捕获不就可以了?try{ 你调用的某个类的某个方法();}catch(Exception ex){ //} 定义一个类:namespace Example{public class ExampleClass{ public int iID = 0; public string strName = ""; public ExampleClass() { iID = 1; strName = "Example"; } public ExampleClass(int ID,string Name) { iID = ID; strName = Name; }}}实例化对象:需要引用 useing System.Reflection;//通过类名获取类的类型Type tp = Type.GetType("Example.ExampleClass"); //需要带上名字空间//不带参数的情况--------------------//获取类的初始化参数信息ConstructorInfo ct1 = tp.GetConstructor(System.Type.EmptyTypes);//调用不带参数的构造器ExampleClass Ex1 = (ExampleClass)ct1.Invoke(null);MessageBox.Show("ID = " + Ex1.iID.ToString() + "; Name = " + Ex1.strName);//将输出: ID = 1; Name = Example//带参数的情况//定义参数类型数组Type[] tps = new Type[2];tps[0] = typeof(int);tps[1] = typeof(string);//获取类的初始化参数信息ConstructorInfo ct2 = tp.GetConstructor(tps);//定义参数数组object[] obj = new object[2];obj[0] = (object)100;obj[1] = (object)"Param Example";//调用带参数的构造器ExampleClass Ex2 = (ExampleClass)ct2.Invoke(obj);MessageBox.Show("ID = " + Ex2.iID.ToString() + "; Name = " + Ex2.strName);//将输出: ID = 100; Name = Param Example 楼主你的需求我怎么看都应该用委托来实现,你提供信息如何显示让调用方来实现delegate void ShowMessage(string message); /// <summary> /// 你的类 /// </summary> class A { public event ShowMessage showHandle; public void exec() { if (showHandle != null) showHandle("你要显示的内容"); } } /// <summary> /// 用户的类 /// </summary> class B { A test = new A(); public B() { test.showHandle +=new ShowMessage(test_showHandle); } void test_showHandle(string message) { // 具体的显示 } } 求一个正则,不区分大小写以开头匹配5个字符串 是否有办法附加Header信息至浏览器? C#如何实现在本地客户端进行xml信息打包并通过接口上传到远程服务器 Array.resize后,旧的数组如何释放? xp系统安装.net2003时报错1309 VS.NET安裝問題 我编译了一个简单的程序 出现下面的问题? 后学者的郁闷,请先人指点迷津。 求如何增加自己的分数,我的分数已经给完了! 字符串相加连接不起来?? c# 序列化问题 (wince下) 新人求解惑?
try
{
你调用的某个类的某个方法();
}
catch(Exception ex)
{
//
}
namespace Example
{
public class ExampleClass
{
public int iID = 0;
public string strName = "";
public ExampleClass()
{
iID = 1;
strName = "Example";
} public ExampleClass(int ID,string Name)
{
iID = ID;
strName = Name;
}
}
}
实例化对象:需要引用 useing System.Reflection;
//通过类名获取类的类型
Type tp = Type.GetType("Example.ExampleClass"); //需要带上名字空间//不带参数的情况--------------------
//获取类的初始化参数信息
ConstructorInfo ct1 = tp.GetConstructor(System.Type.EmptyTypes);
//调用不带参数的构造器
ExampleClass Ex1 = (ExampleClass)ct1.Invoke(null);
MessageBox.Show("ID = " + Ex1.iID.ToString() + "; Name = " + Ex1.strName);
//将输出: ID = 1; Name = Example//带参数的情况
//定义参数类型数组
Type[] tps = new Type[2];
tps[0] = typeof(int);
tps[1] = typeof(string);
//获取类的初始化参数信息
ConstructorInfo ct2 = tp.GetConstructor(tps);//定义参数数组
object[] obj = new object[2];
obj[0] = (object)100;
obj[1] = (object)"Param Example";//调用带参数的构造器
ExampleClass Ex2 = (ExampleClass)ct2.Invoke(obj);
MessageBox.Show("ID = " + Ex2.iID.ToString() + "; Name = " + Ex2.strName);
//将输出: ID = 100; Name = Param Example
delegate void ShowMessage(string message); /// <summary>
/// 你的类
/// </summary>
class A
{
public event ShowMessage showHandle; public void exec()
{
if (showHandle != null)
showHandle("你要显示的内容");
}
} /// <summary>
/// 用户的类
/// </summary>
class B
{
A test = new A();
public B()
{
test.showHandle +=new ShowMessage(test_showHandle);
} void test_showHandle(string message)
{
// 具体的显示
}
}