在下面的代码中,我无法返回null,这将导致错误(T可以是非null值类型)
public static T Deserialize<T>(byte[] serializedData)
{
//if (serializedData == null) { return null; } //// error
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter binaryFormatter = new BinaryFormatter();
memoryStream.Write(serializedData, 0, serializedData.Length);
memoryStream.Seek(0, SeekOrigin.Begin);
return (T)binaryFormatter.Deserialize(memoryStream);
}
通过添加default(T)将解决空问题
if (serializedData == null) { return default(T); }
但是这将返回默认值(对于bool等为false。)..还有其他方法可以做到这一点吗?