我有這樣的代碼:錯誤消息:「無法轉換類型'字符串?'以「串」「
//Return null if the extension doesn't have the value, returns the value if it does.
private T? getValue<T>(IEnumerable<Extension> extension, string attributeName)
{
IEnumerable<Extension> ext = extension.Where(e => e.attributeName == attributeName);
if (ext.Count() > 0)
{
return (T)ext.First().Attribute;
}
return null;
}
我打電話是這樣的:
//This works:
retVal.byteValue= getValueFromExtension<byte>(u, "ByteToGet") ?? 0;
//This doesn't work:
getValueFromExtension<string>(u, "Text") ?? "";
我得到的編譯錯誤:」錯誤消息:「無法將類型「字符串? 「以「串」「
我怎樣纔能有效地做好代碼的理念之上,而無需創建一個新的方法?
我覺得我檢查,如果它是空與??運營商,因此,如果字符串爲空,它將總是被設置爲一個空字符串,它是如何處理字節和整數,爲什麼不是字符串?
上面的字節值,是字節類型,不是字節?
這段代碼編譯過的?我很困惑'T?'方法的返回類型 – sll
什麼是'getValueFromExtension'? – Oded
我不明白爲什麼你的方法甚至編譯沒有'struct'約束。 – CodesInChaos