如果输入为null,甚至有可能通用的反序列化函数返回null

时间:2019-03-07 07:39:53

标签: c# generics

在下面的代码中,我无法返回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。)..还有其他方法可以做到这一点吗?

0 个答案:

没有答案