函数接受可空类型并返回可空类型或字符串

时间:2013-07-30 13:33:09

标签: c# .net nullable

基本上我希望能够有一个接受Nullable Type的函数然后返回值,如果它有一个或字符串值为“NULL”,如果它为null,那么该函数需要能够接受任何可空的键入然后返回该类型或返回字符串NULL。以下是我正在寻找的一些例子,我似乎无法弄清楚我的功能需要做什么。

UInt16? a = 5;
UInt16? b = null;
UInt32? c = 10;
UInt32? d = null;

Console.WriteLine(MyFunction<UInt16?>(a)) // Writes 5 as UInt16?
Console.WriteLine(MyFunction(UInt16?>(b)) // Writes NULL as String
Console.WriteLine(MyFunction(UInt32?>(c)) // Writes 10 as UInt32?
Console.WriteLine(MyFunction(UInt32?>(d)) // Writes NULL as String

static T MyFunction<T>(T arg)
{
    String strNULL = "NULL";

    if (arg.HasValue)
        return arg;
    else
        return strNULL;
}

1 个答案:

答案 0 :(得分:2)

static string MyFunction<T>(Nullable<T> arg) where T : struct
{
    String strNULL = "NULL";

    if (arg.HasValue)
        return arg.Value.ToString();
    else
        return strNULL;
}