在方法之间传递变量值

本文关键字:变量值 之间 方法 | 更新日期: 2023-09-27 17:56:04

有人可以帮助我在 c# 中将值从一个类方法传递到另一个类方法吗?我试过查找它,但我迷失在代码页面中,找不到一个简单的例子。请看以下内容:

//Main Program Program.cs
namespace simplecode
{
    class Program
    {
        static void Main(string[] args)
        {
            Values Values = new Values();
            Values.getName();
        }
    }
}

//Separate class file or object Values.cs 

namespace simplecode
{
    public class Values
    {
        public static void getName()
        {
            Console.Clear();
            Console.Write("Enter name: ");
            string myName = Console.ReadLine();
        }
    }
}

现在,如果我执行这个,主程序运行getName,我可以存储myName变量。如何从主程序或其他单独的类方法中获取 myName 的值?我试图从概念上理解这一点,我需要正确的语法。如果有人可以解释需要什么或提供研究链接 ID,请表示感谢。

谢谢话筒

在方法之间传递变量值

您可以让该方法返回此值:

public static string getName()
{
    Console.Clear();
    Console.Write("Enter name: ");
    return Console.ReadLine();
}

然后在主程序中调用该方法并将结果存储在局部变量中:

static void Main(string[] args)
{
    string myName = Values.getName();
}

请注意,由于 getName 是一个静态方法,因此无需创建 Values 类的实例即可调用它。可以直接在类型名称上调用它。

另一方面,如果getName方法不是静态的:

public string getName()
{
    Console.Clear();
    Console.Write("Enter name: ");
    return Console.ReadLine();
}

然后,您需要实例:

static void Main(string[] args)
{
    Values values = new Values();
    string myName = values.getName();
}

首先,您需要将变量实际存储在某个地方。现在它是方法中的一个局部变量,所以在你给它赋值后,它会立即消失。

使其成为类中的属性,并使该方法成为实例方法而不是静态方法:

namespace simplecode
{
    public class Values
    {
        public string MyName { get; set; }
        public void getName()
        {
            Console.Clear();
            Console.Write("Enter name: ");
            MyName = Console.ReadLine();
        }
    }
}

现在,您可以调用该方法并在之后获取值:

namespace simplecode
{
    class Program
    {
        static void Main(string[] args)
        {
            Values myValues = new Values();
            myValues.getName();
            Console.WriteLine(myValues.MyName);
        }
    }
}
通常,

您会从函数返回值。您需要考虑代码如何调用不同的模块。

您可能会发现,如果流程很复杂,您可能需要查看控制反转,尽管偏离主题且更高级,但它与代码如何链接在一起有关,我觉得这是您的潜在问题/问题。

如果要返回多个值,则可以使用结构/类或将参数标记为ref,从而允许您从函数内部进行修改(通过引用传递的变量,而不是默认通过值传递它们)。