C# - 函数的返回类型是一个参数

Adr*_*veu 6 c# parameters

我想知道函数是否可以返回C#中参数中指定的类型值.

这就是我想要做的:

public ReturnValueUndefined function(undefinedType value)
{
    return value;
}
Run Code Online (Sandbox Code Playgroud)

我想使用它,因为我希望我的函数将任何类作为参数并返回相同的类.

谢谢!

Tre*_*ott 18

你想要一个通用的功能.

public T YourFunctionName<T>(T value)
{
    return value;
}
Run Code Online (Sandbox Code Playgroud)

请记住,编译器只能假设T是一个对象,因此您只能执行Equals,ToString等基本操作.您可以where向泛型方法添加一个约束,以假设参数是具体的类,如类或结构体.

public T YourFunctionName<T>(T value) where T : class
{
    return value;
}
Run Code Online (Sandbox Code Playgroud)

虽然您很可能实际上只想使用基类或接口来处理多个类型.使用通用方法时,如果你不能做你想做的那种模式,你会很快意识到.如果您的约束使您达到必须将泛型方法限制为仅处理特定接口类型的程度,那么您可能只希望该方法成为接口的一部分.

  • 或接口:) http://msdn.microsoft.com/en-us/library/bb384067.aspx (2认同)