基本的に、Null 許容型を取り、それが 1 つある場合は値を返すか、null の場合は文字列値「NULL」を返す関数を 1 つ持つことができるようにしたいので、関数は任意の 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;
}