我有一个简单的问题,但我不知道什么来处理它的最佳方式。如何根据参数强制转换对象类型?
我有几个不同的设置文件,并且我有一个GetData方法,它接收一个“路径”参数。
public static CountriesInfo GetDataFromFile(string path)
{
if (!File.Exists(path))
{
return null;
}
try
{
CountriesInfo tempData = new CountriesInfo();
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(tempData.GetType());
StreamReader tempReader = new StreamReader(path);
tempData = (CountriesInfo)x.Deserialize(tempReader);
tempReader.Close();
return tempData;
}
catch
{
return null;
}
}
什么是最好的方式来重构这支持传递一个对象类型,然后在该方法内进行强制转换?眼下的返回类型(在这个例子中)是CountriesInfo,但我不希望有一些相同的功能,唯一的区别是返回类型和方法中的铸造。
它是最好做的东西像传递ref参数和从对象获取类型呀?
谢谢!
这将不会编译 - 你不能转换为null,无限制的类型'T' – Lee
权,错过了T必须是一个类的限制(现在又增加了它)。如果用户也想支持结构,另一种选择是返回'default(T)'而不是'null',在这种情况下,约束不是必需的。 – carlosfigueira
很棒。谢谢! – kodikas