【问题标题】:C# - How to get variables from a different method?C# - 如何从不同的方法获取变量?
【发布时间】:2015-10-14 21:47:39
【问题描述】:

我还需要添加 2 个随机数,存储在一个 int 变量中并以不同的方法存储。请问最简单最简单的方法是什么?

谢谢!

public void generateNumbers()
        {
            Random rand = new Random();
            int randomNumber = rand.Next(1, 11);
            int randomNumber2 = rand.Next(1, 11);
            Console.WriteLine("Number1: " + randomNumber);
            Console.WriteLine("Number2: " + randomNumber2);
        }

        public int findSum()
        {
            //sum = randomNumber + randomNumber2 //gets sum from the method generateNumbers()
            return sum;
        }

【问题讨论】:

  • 制作randomNumberrandomNumber2类级变量
  • 将它们的范围更改为更通用的范围或将它们作为参数传递。
  • 阅读编程教程或查看几乎所有工作应用程序代码(无论多么简单)。关闭是非常编程 101,而不是您研究、试验、再次寻找重复问题但仍然无法修复的问题 - 但这正是之前您需要做的你在这里问,见stackoverflow.com/help/how-to-ask

标签: c# random


【解决方案1】:

您可以使它们成为包含这两种方法的类的实例变量。这样,类的所有方法都可以访问它们,并且在对这些方法的调用之间保留它的值。

class ContainingClass
{
    int randomNumber;
    int randomNumber2;

    public void generateNumbers()
    {
        Random rand = new Random();
        randomNumber = rand.Next(1, 11);
        randomNumber2 = rand.Next(1, 11);
        Console.WriteLine("Number1: " + randomNumber);
        Console.WriteLine("Number2: " + randomNumber2);
    }

    public int findSum()
    {
        return randomNumber + randomNumber2; //gets sum from the method generateNumbers()
    }
}

【讨论】:

  • 谢谢,我确实了解了 int 现在在方法和外部的工作原理 :)
【解决方案2】:

您可以使用Tuple 在方法之间传递两个值,如以下 (C~ 6) 代码所示:

public Tuple<int, int> GenerateNumbers()
{
    var rand = new Random();
    return Tuple.Create(rand.Next(1, 11), rand.Next(1, 11));
}

public int FindSum(Tuple<int, int> numbers) => numbers.Item1 + numbers.Item2;

【讨论】:

    【解决方案3】:

    试试这个:

    namespace ConsoleApplication4
    {
        class Program
        {
            static void Main(string[] args)
            {
                Processor proc = new Processor();
                proc.generateNumbers();
            }
        }
    }
    

    这是处理器类 使用系统;

    namespace ConsoleApplication4
    {
        public class Processor
        {
            public void generateNumbers()
            {
                Random rand = new Random();
                AddModel addModel = findSum(rand);
                Console.WriteLine("Number1: " + addModel.Left);
                Console.WriteLine("Number2: " + addModel.Right);
                Console.WriteLine("Sum: " + addModel.Sum);
            }
    
            private AddModel findSum(Random rand)
            {
                AddModel addModel = new AddModel();
                addModel.Left = rand.Next(1, 11);
                addModel.Right = rand.Next(1, 11);
                addModel.Sum = addModel.Left + addModel.Right;
                return addModel;
            }
        }
    }
    

    这里是添加模型类

    namespace ConsoleApplication4
    {
        public class AddModel
        {
            public int Left { get; set; }
            public int Right { get; set; }
            public int Sum { get; set; }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 2020-06-01
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      相关资源
      最近更新 更多