有没有办法以编程方式确定方法的返回类型?

时间:2011-11-09 17:32:49

标签: c# methods

我不是说超载。这可能包括我尚未创建的新Type类。

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

5 个答案:

答案 0 :(得分:8)

你可以使用反射:

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

答案 1 :(得分:3)

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

有很多方法可以做到这一点,搜索return generic type c#会出现几种不同复杂程度的技术。从根本上说,你有:

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

然而,“......”取决于您的应用程序。

答案 2 :(得分:2)

根据您的更新,您想要的方法如下:

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

答案 3 :(得分:0)

答案 4 :(得分:0)

您可以使用泛型类型和泛型方法来执行此操作 C# Generic Methods