是否有方法以编程方式确定方法的返回类型

本文关键字:方法 返回类型 方式确 有方法 编程 是否 | 更新日期: 2023-09-27 18:13:53

我不是说超载。这可能包括我还没有创建的类的新Type s。

编辑:我想创建一个方法,它将返回它作为参数获取的类型的值。我可以获得类型为object的参数,但我不想以这种方式返回它,然后强制转换,我希望返回值本身与参数具有相同的类型。

是否有方法以编程方式确定方法的返回类型

你可以使用反射:

var returnType = typeof(SomeClass).GetMethod("SomeMethodName").ReturnType;

您可以创建一个泛型方法,该方法返回待确定的类型。只要你正确地声明了你的新类,它们就应该可以工作。

有很多方法可以做到这一点,在c#中搜索返回泛型类型会出现几种不同的复杂技术。基本上你有:

public T DoStuff<T>()
{
...
}

根据您的更新,您想要的方法将类似于:

public T MyMethod<T>(T input)
{
  // DoSomething
  T result = default(T); // Create your instance of T here
  return result;
}

是的,这叫做反射。

这应该可以回答你的问题:http://msdn.microsoft.com/en-us/library/system.reflection.methodinfo.returntype.aspx

您可以使用泛型类型和泛型方法来做到这一点c#泛型方法