C# 使用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

正如标题所说,是否有可能通过使用yield优化以下代码,它是否值得,如果值得,如何实现

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,代码也可以,不需要优化