我一直在寻找一种方法在c#中传递一个未知类型的对象,而不会抛出对象?
基本上我使用反射来获取类的构造函数参数,并且我将变量作为对象传递给构造函数,但我发现没有办法动态转换变量... < / p>
代码示例:
public class bClass {
public bClass(string c) {
d = c;
}
}
object a = "asdfasdf";
bClass b = new bClass(a);
我已经能够使用
获取构造函数中接受的变量类型bClassvar obj = typeof(bClass).GetConstructors();
foreach(var nObj in obj) {
foreach(var param in nObj) {
string sAObjectType = param.ParameterType;
}
}
但是,我不确定如何将'a'转换为输入sAObjectType,任何想法都非常感激=]
谢谢!
答案 0 :(得分:0)
如何使用泛型 - 那么你不必担心转换等问题。
public class bClass<T>
{
privat T d;
public bClass(T c)
{
d = c
}
}
然后下面的内容就可以了。
bClass b1 = new bClass( "1234" );
bClass b2 = new bClass( 12 );
...