只知道字符串 Int32 有没办法通过反射执行Int32.Parse()?

如题所述

第1个回答  2013-05-22

可以反射不过你得提供类型的全名。

代码如下:

using System.Reflection;

private void button1_Click(object sender, EventArgs e)
{
string typeStr = "System.Int32";//反射的类型
string methodStr = "Parse";//方法
string[] paramStr = new string[] { "12345" };//参数
string[] paramTypeStr = new string[] { "System.String" };//参数类型
string bindingFlagsStr = "Static, Public";//方法的可见性
Type type = Type.GetType(typeStr);
object instance = Activator.CreateInstance(type);
BindingFlags bindingFlags = (BindingFlags)Enum.Parse(typeof(BindingFlags), bindingFlagsStr);
Type[] typeArr = Type.GetTypeArray(paramTypeStr);
object[] paramArr = new object[paramStr.Length];
for (int i = 0; i < paramArr.Length; i++)
{
paramArr[i] = paramStr[i];
}
MethodInfo methodInfo = type.GetMethod(methodStr, bindingFlags, null, typeArr, null);
if (methodInfo != null)
{
object result = methodInfo.Invoke(instance, paramArr);
MessageBox.Show("返回值:" + result.ToString() + " 类型:" + result.GetType().ToString());
}
}

只知道字符串 Int32 有没办法通过反射执行Int32.Parse()?
可以反射不过你得提供类型的全名。代码如下:using System.Reflection;private void button1_Click(object sender, EventArgs e){string typeStr = "System.Int32";\/\/反射的类型string methodStr = "Parse";\/\/方法string[] paramStr = new string[] { "12345" };\/\/参数string[] paramTypeStr = ...

Int32.Parse()和Convert,Toint32()一样吗
public static int ToInt32(char);public static int ToInt32(decimal);public static int ToInt32(double);public static int ToInt32(short);public static int ToInt32(long);public static int ToInt32(sbyte);public static int ToInt32(string);...(int)和Int32.Parse(),Convert.ToInt3...

C#的 i=Int32.Parse(console.ReadLine());是什么意思请详解
ReadLine()是读取一行,返回值是string类型,Int32.Parse()是值类型转换,返回值是int类型,总体来看是将一行的数据转换成数值类型然后赋值给i变量

c#的convert To语句
如果要转换的 是字符串,1和2是一样的 此时Convert.ToInt32内部就是调用int.Parse。反编译可以看到 但int.Parse里面只能传字符串。而Convert.ToInt32可以传别的,比如时间类型,小数类型等等,此时调用datetiem.Parse等方法。Convert.ToInt32适应性更强,当然你如果只是将字符串转成数字,两者没区别。3...

c#中int向float型转换的问题。
1、用Convert方法。Convert.ToInt32(string),括号里的是需要转换的字符串。2、Int32.Parse(string)和Int.Parse(string)。3、Int32.TryParse(string,out int result)或int.TryParse(string,out int result)来转换。TryParse的返回值是一个bool类型的值,指示是否转换成功,转换成功后第二个参数就是已经...

int32.TryParse(string a,out int b)他的第二个参数有什么作用?_百度...
是C#里面的吧,前面加了out说明它是作为返回的,也就是说把a试着转化为int值,如果成功就放在b里面返回。

Convert.ToInt32、int.Parse的区别是什么?
直接报错:"输入字符串的格式不正确".c. int(4.6) = 4 Int转化其他数值类型为Int时没有四舍五入,强制转换 int.Parse是转换String为int Convert.ToInt32是转换继承自Object的对象为int的.你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.总结:(1)Convert.To...

int.Parse()方法是C#独有的吗?
c#中的int实际上只不过是.Net类库中的结构Int32的一个别名。对int.Parse() 的调用,编译器最终将其转换成了Int32.Parse()。所以,从本质上说,int.Parse()是.Net类库提供的功能,所有.Net语言都可以使用类库提供的这个功能,这不是c#独有的。

在C#中“int,int.parse()”和“Convert.toInt32()”的区别是什么?_百 ...
"4.5")直接报错:"输入字符串的格式不正确". c. int(4.6) = 4 Int转化其他数值类型为Int时没有四舍五入,强制转换 int.Parse是转换String为int Convert.ToInt32是转换继承自Object的对象为int的.你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.。

c#中类型如何强制转换
方法:1、int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型);2、int.Parse(stringsParameter)是个静态方法,参数类型只支持string类型;3、Convert.ToInt32()适合将Object类型转换为int型;4、Convert.ToInt32()和int.Parse()的细微差别:对于空值(null)的处理不同,Convert....

相似回答
大家正在搜