7

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

这是我想做的:

public ReturnValueUndefined function(undefinedType value)
{
    return value;
}

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

谢谢!

4

1 回答 1

20

你想要一个通用函数。

public T YourFunctionName<T>(T value)
{
    return value;
}

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

public T YourFunctionName<T>(T value) where T : class
{
    return value;
}

尽管很有可能您实际上只是想使用基类或接口来将多种类型视为相同。使用通用方法时,您会很快意识到,如果您无法使用该模式执行您可能想要执行的操作。如果您的约束使您必须将泛型方法限制为仅适用于特定接口类型,那么您可能只是希望该方法成为接口的一部分。

于 2013-10-17T17:35:02.633 回答