正如标题所说,是否可以通过使用yield来优化以下代码,是否值得,如果是,如何?
{{1}}
编辑:感谢您的回答!
答案 0 :(得分:3)
yield return
只能用于实际返回某些内容的方法。你没有返回值,所以答案是否定的。
例如,这可能是yield return
的应用程序,但这会改变您方法的含义:
public static IEnumerable<Setting> LoadSettings(string fileName)
{
try
{
var xml = new XmlDocument();
xml.Load(fileName);
var userNodes = xml.SelectNodes("/settings");
foreach (XmlNode node in userNodes)
{
Setting globals = new Setting();
globals.username = node.SelectSingleNode("username").InnerText;
globals.password = node.SelectSingleNode("password").InnerText;
globals.rank = node.SelectSingleNode("rank").InnerText;
yield return globals;
}
}
catch
{
Console.WriteLine("Oops, something is wrong.");
}
}