单个函数调用以返回任何可能的数据类型

时间:2014-12-11 12:43:16

标签: c# function type-conversion

是否可以创建一个我可以调用的函数,传递一个对象并让该函数返回任何数据类型。(我猜我必须告诉它要返回的数据类型,所以下面我刚刚传递了一个字符串为此 - 可能有一个更清洁的方式来处理这个)

public x GetValue(Object value, string datatype)

我可以打电话给这个传递:(DataRow["OrderID"], "Integer")

然后传递:(DataRow["CustomerName"], "String")

再次调用它

希望这是有道理的。

1 个答案:

答案 0 :(得分:5)

是的,它被称为泛型:

public T GetValue<T>(Object value)
{
    if (value == DbNull.Value)
    {
        return default(T);
    }

    return (T)value;
}

然后这样称呼:

string s = GetValue<string>(DataRow["CustomerName"]);

或者,作为Tim Schmelter suggested,在这种情况下,您可以使用:

DataRow.Field<string>("CustomerName");