提示框框中的提示语也由我的这个类产生,在通过反射创建时,提示语作为参数传入那个类
网上的内容看不懂,谁有相关麻烦把代码大致写一下,谢谢!!
12 个解决方案
#1
直接用异常捕获不就可以了?
try
{
你调用的某个类的某个方法();
}
catch(Exception ex)
{
//
}
#2
定义一个类:
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
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
#3
#4
楼上的楼上正解
#5
#6
学习''''
#7
楼上的是正解 但 直接实例化该类 直接调用方法不行吗? 好像这边用反射没多大意义吧
#8
#9
不要滥用反射。
其实语言往往是混沌的,其实只要你把你的需求重新用接口、用代码来描述出来(不需要什么“伪代码”,就是真实的代码,基于接口来多态地隐藏接口的具体实现即可),那么接下来的实现思路就快清楚了。
其实语言往往是混沌的,其实只要你把你的需求重新用接口、用代码来描述出来(不需要什么“伪代码”,就是真实的代码,基于接口来多态地隐藏接口的具体实现即可),那么接下来的实现思路就快清楚了。
#10
我许多时候发现:只是帮那些只会动嘴不会动手的人把需求用代码写出来,然后他们自己就会实现了。而我并不需要替他实现。
#11
楼主你的需求我怎么看都应该用委托来实现,你提供信息如何显示让调用方来实现
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)
{
// 具体的显示
}
}
#12
反射,查查资料就知道了。
#1
直接用异常捕获不就可以了?
try
{
你调用的某个类的某个方法();
}
catch(Exception ex)
{
//
}
#2
定义一个类:
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
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
#3
#4
楼上的楼上正解
#5
#6
学习''''
#7
楼上的是正解 但 直接实例化该类 直接调用方法不行吗? 好像这边用反射没多大意义吧
#8
#9
不要滥用反射。
其实语言往往是混沌的,其实只要你把你的需求重新用接口、用代码来描述出来(不需要什么“伪代码”,就是真实的代码,基于接口来多态地隐藏接口的具体实现即可),那么接下来的实现思路就快清楚了。
其实语言往往是混沌的,其实只要你把你的需求重新用接口、用代码来描述出来(不需要什么“伪代码”,就是真实的代码,基于接口来多态地隐藏接口的具体实现即可),那么接下来的实现思路就快清楚了。
#10
我许多时候发现:只是帮那些只会动嘴不会动手的人把需求用代码写出来,然后他们自己就会实现了。而我并不需要替他实现。
#11
楼主你的需求我怎么看都应该用委托来实现,你提供信息如何显示让调用方来实现
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)
{
// 具体的显示
}
}
#12
反射,查查资料就知道了。