【问题标题】:Assign values to a group of variables using recursion in C#?在 C# 中使用递归为一组变量赋值?
【发布时间】:2011-07-13 00:54:54
【问题描述】:

如何在 C# 中使用递归为一组变量赋值?

我可以通过一个简单的过程轻松做到这一点,但我不知道如何使用递归来做到这一点。

public void Assign()
{
Console.Write("Name: ");
Name = Console.ReadLine();

Console.Write("e-mail: ");
Email = Console.ReadLine();

Console.Write("Phone Number: ");
Phone = int.Parse(Console.ReadLine());
}

感谢您的帮助。

【问题讨论】:

  • 我没有关注这个问题...为什么要为此使用递归?
  • 如果这是一个家庭作业,请相应地标记它并阅读如何发布家庭作业问题:stackoverflow.com/tags/homework/info
  • 这不是递归操作。为此使用递归是对递归的不良使用。如果这是家庭作业,自然你“必须”做作业。但要明白,这样的作业并没有教给你任何东西......
  • @stefan:它可能会隐约教会他如何使用它。它不会教他何时为什么使用它。我可以通过将木螺钉敲入混凝土来向某人展示如何使用锤子,但这并不能真正教会他们任何东西。
  • @David 好吧,作为木匠,您不必能够设计房子就能掌握锤子。但如果有人让你用锤子敲钉子,你应该可以做到。

标签: c# recursion variable-assignment


【解决方案1】:

如果您要使用递归,您必须拥有某种足以完成您将在函数中执行的任何工作的本地上下文,并且您必须知道何时/何地停止(并开始弹出堆栈)。

您的示例看起来像(如果有的话)一个循环。

【讨论】:

    【解决方案2】:

    你的问题看起来像家庭作业,因为教科书通常使用这种可怕的问题来教授递归。

    namespace Homework
    {
        class Recursion
        {
            static string[] nameList = new string[5];
            static void Main(string[] args)
            {
                AssignNames(0);
                Console.WriteLine("The names are:");
                foreach(string name in nameList)
                {
                    Console.WriteLine(name);
                }
                Console.ReadKey();
    
            }
    
            static void AssignNames(int index)
            {
                if (index == nameList.Length) return;
                Console.Write("Enter name #{0}: ", index + 1);
                nameList[index] = Console.ReadLine();
                AssignNames(index + 1);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多