是否有方法以编程方式确定方法的返回类型
本文关键字:方法 返回类型 方式确 有方法 编程 是否 | 更新日期: 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#泛型方法