C# 使用yield优化下面的代码是否有可能和价值?如果有,如何优化
正如标题所说,是否有可能通过使用yield优化以下代码,它是否值得,如果值得,如何实现C# 使用yield优化下面的代码是否有可能和价值?如果有,如何优化,c#,C#,正如标题所说,是否有可能通过使用yield优化以下代码,它是否值得,如果值得,如何实现 public static void LoadSettings(string fileName) { try { var xml = new XmlDocument(); xml.Load(fileName); var userNodes = xml.SelectNodes("/settings"); foreach (XmlN
public static void LoadSettings(string fileName)
{
try
{
var xml = new XmlDocument();
xml.Load(fileName);
var userNodes = xml.SelectNodes("/settings");
foreach (XmlNode node in userNodes)
{
globals.username = node.SelectSingleNode("username").InnerText;
globals.password = node.SelectSingleNode("password").InnerText;
globals.rank = node.SelectSingleNode("rank").InnerText;
}
}
catch
{
Console.WriteLine("Oops, something is wrong.");
}
}
编辑:谢谢大家的回答不,你不能<代码>收益返回只能对实际返回某物的方法实现。您没有返回值,因此答案是否定的 例如,这可能是
收益率回报的应用程序
,但这会改变方法的含义:
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.");
}
}
公共静态IEnumerable加载设置(字符串文件名)
{
尝试
{
var xml=新的XmlDocument();
Load(文件名);
var userNodes=xml.SelectNodes(“/settings”);
foreach(userNodes中的XmlNode节点)
{
设置全局值=新设置();
globals.username=node.SelectSingleNode(“用户名”).InnerText;
globals.password=node.SelectSingleNode(“密码”).InnerText;
globals.rank=node。选择singlenode(“rank”).InnerText;
全球收益率;
}
}
抓住
{
WriteLine(“哎呀,有点不对劲。”);
}
}
no->test yield首先在测试项目中查看它的功能,因为我认为您不理解,我也不完全理解这个问题。你能举一个例子,说明你在这里应该如何使用yield
?你甚至不返回任何东西……你可以t,代码也可以,不需要优化