Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types C#反射-调用具有不同类型参数的方法_Types_Parameters_Invoke - Fatal编程技术网

Types C#反射-调用具有不同类型参数的方法

Types C#反射-调用具有不同类型参数的方法,types,parameters,invoke,Types,Parameters,Invoke,如何将int、string和float传递给使用反射调用的方法?基本上,调用时使用不同的类型,如下所示: 调用(服务,null); 我可以传递对象数组,但它如何知道我传递的是什么类型? 谢谢您的方法信息仅耦合到一种方法。当两个不同的方法的签名(参数的类型)不同时,它们可以具有相同的名称 因此,如果您有一个重载方法,您可以使用 public MethodInfo GetMethod( string name, Type[] types ) 在数组中提供参数的类型。假设我想使用反射调用如下方法:g

如何将int、string和float传递给使用反射调用的方法?基本上,调用时使用不同的类型,如下所示: 调用(服务,null); 我可以传递对象数组,但它如何知道我传递的是什么类型?
谢谢

您的方法信息仅耦合到一种方法。当两个不同的方法的签名(参数的类型)不同时,它们可以具有相同的名称

因此,如果您有一个重载方法,您可以使用

public MethodInfo GetMethod(
string name,
Type[] types
)

在数组中提供参数的类型。

假设我想使用反射调用如下方法:getdetails(int-id,string-name,float-avgsal)。那么,我应该在object[]参数数组中存储什么以及如何存储它呢?您可以通过
var method=type.GetMethod(“getdetails”,新类型[]{typeof(int),typeof(string),typeof(float)})获得MethodInfo
并通过
var result=method.Invoke(myObject,new object[]{myId,myName,myAvgsal})调用它