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

Ric*_*ale 0 c# function type-conversion

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

public x GetValue(Object value, string datatype)
Run Code Online (Sandbox Code Playgroud)

我可以称这个传递: (DataRow["OrderID"], "Integer")

然后传递再次调用它:(DataRow["CustomerName"], "String")

希望这是有道理的.

Pat*_*man 5

是的,它被称为泛型:

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

    return (T)value;
}
Run Code Online (Sandbox Code Playgroud)

然后像这样称呼它:

string s = GetValue<string>(DataRow["CustomerName"]);
Run Code Online (Sandbox Code Playgroud)

或者,正如Tim Schmelter 建议的那样,在这种情况下你可以使用:

DataRow.Field<string>("CustomerName");
Run Code Online (Sandbox Code Playgroud)

  • 或者只是使用`DataRow.Field <string>("CustomerName")`;-) (3认同)