如果函数体中发生异常,我如何返回一个新的空类型 T?
如果反序列化 xml 时出现问题,将 x 转换为新 T() 的最佳方法是什么?
看看我是如何获得 catch block 的,我将如何处理它?</p>
public static T DeserializeXml<T>(this string xml) where T : class
{
XmlDocument doc = new XmlDocument();
MemoryStream ms = new MemoryStream();
StreamReader sr = null;
T x = null;
//
try
{
doc.LoadXml(xml); doc.Save(ms);
ms.Position = 0;
sr = new StreamReader(ms);
XmlSerializer i = new XmlSerializer(typeof(T));
x = (T)i.Deserialize(sr);
}
catch (Exception) {
x = null;
}
finally {
sr.Close(); sr.Dispose(); ms.Close(); ms.Dispose();
}
//
return x as T;
}
最佳答案
你可以使用default .
return default(T);
关于c# - 如何处理通用返回 T 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061998/