0
基本上,我希望能夠有一個函數,它在可空類型,然後返回值,如果它有一個或字符串值「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;
}
當然,返回 「NULL」 作爲字符串的值是有爭議的。如果你仍然需要處理當它爲空時要做什麼,那麼通過將邏輯轉移到方法中,你並沒有獲得任何東西。 –
@DanielMann這只是對問題中描述的特定問題的答案。這是OP的想法返回「NULL」 – empi
這不會編譯如:'T'需要一個非可空類型是有效的可空''(即'其中T:struct') –
RoadieRich