C# 如何在c中调用接受多个参数的方法#

C# 如何在c中调用接受多个参数的方法#,c#,methods,C#,Methods,我是c#的新手,在这个小程序中遇到了一个问题 我想返回方法ClientsDetails中输入的信息,以便在方法Print()中使用它们。 有什么帮助吗 public static void Main(string[] args) { ClientsDetails(); Print(???,???,???); Console.ReadLine(); } public static void ClientsDetai

我是c#的新手,在这个小程序中遇到了一个问题 我想返回方法ClientsDetails中输入的信息,以便在方法Print()中使用它们。 有什么帮助吗

public static void Main(string[] args)
    {

        ClientsDetails();

        Print(???,???,???);

        Console.ReadLine();


    }

    public static void ClientsDetails()
    {
        Console.Write("Client's first name: ");
        string firstName = Console.ReadLine();
        Console.Write("Client's last name: ");
        string lastName = Console.ReadLine();
        Console.Write("Client's birthdate: ");
        string birthday = Console.ReadLine();
    }

    public static void Print(string first, string last, string birthday)
    {
        Console.WriteLine("Client : {0} {1} was born on: {2}", first, last, Birthday);
    }
}

有很多方法可以将所需的参数传递给方法,例如,您可以这样做:

String f = "first string";
String l = "last string";
String b = "birthday string";
Print(f,l,b);
Print(firstName, lastName, birthday);
顺便说一句,在您的情况下,您似乎希望将用户的输入传递到
Print
方法,因此一个简单的方法就是在
clientsdeails
方法中调用
Print
方法,如下所示:

String f = "first string";
String l = "last string";
String b = "birthday string";
Print(f,l,b);
Print(firstName, lastName, birthday);

有关这方面的综合资源,您可以一如既往地参考。目前,您可以忽略异步方法部分。

我只是根据您的要求修改了您的程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        private static String FirstName;
        private static String LastName;
        private static String Birthday;
        static void Main(string[] args)
        {
            ClientsDetails();
            Print(FirstName, LastName, Birthday);
            Console.ReadKey();
        }

        public static void ClientsDetails()
        {
            Console.Write("Client's first name: ");
            FirstName = Console.ReadLine();
            Console.Write("Client's last name: ");
            LastName = Console.ReadLine();
            Console.Write("Client's birthdate: ");
            Birthday = Console.ReadLine();
        }

        public static void Print(string first, string last, string birthday)
        {
            Console.WriteLine(String.Format("Client : {0} {1} was born on: {2}", first, last, Birthday));
        }
    }
}

您可以使用结构:

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台应用程序1
{
结构人{
公共静态名;
公共静态姓氏;
公众静态生日;
}
班级计划
{
静态void Main(字符串[]参数)
{                
Person=客户端详细信息();
打印(person.FirstName、person.LastName、person.birth);
Console.ReadKey();
}
公共静态个人客户端详细信息()
{
Person returnValue=新的Person();
Console.Write(“客户的名字:”);
returnValue.FirstName=Console.ReadLine();
Console.Write(“客户姓氏:”);
returnValue.LastName=Console.ReadLine();
Console.Write(“客户的生日:”);
returnValue.birth=Console.ReadLine();
返回值;
}
公共静态无效打印(字符串第一、字符串最后、字符串生日)
{
WriteLine(String.Format(“客户机:{0}{1}出生于:{2}”,第一个、最后一个生日));
}
}
}
或数组:

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{                
字符串person=ClientsDetails();
打印(人员[0]、人员[1]、人员[2]);
Console.ReadKey();
}
公共静态字符串[]ClientsDetails()
{
字符串[]返回值=新字符串[3];
Console.Write(“客户的名字:”);
returnValue[0]=Console.ReadLine();
Console.Write(“客户姓氏:”);
returnValue[1]=Console.ReadLine();
Console.Write(“客户的生日:”);
returnValue[3]=Console.ReadLine();
返回值;
}
公共静态无效打印(字符串第一、字符串最后、字符串生日)
{
WriteLine(String.Format(“客户机:{0}{1}出生于:{2}”,第一个、最后一个生日));
}
}
}
或参考(通过参考):


你可以学习更多关于C的知识。首先,它看起来像是一个家庭作业,而不是一个特定的问题。看起来你读的课堂材料和你读的一样好,或者是Hello@Alex,我已经在学习Bob Tabor了。感谢您的回复您必须在主方法中使用打印方法吗?如果这是一个家庭作业,并且它们阻止您使用全局变量,您应该提供一个指向该作业的链接。。。另外,您可以从ClientDetails部分Hello@mok的字符串返回一个数组,参数由用户在方法ClientsDetails()中输入,我需要在方法Print()和@Khalil{Hi}中使用相同的参数。另一种方法是返回用户在
ClientsDetails
方法之外填充的变量值,例如通过将
输出
参数传递给该方法。亲爱的@mok,在ClientsDetails()方法中调用Print()解决了问题,非常感谢:)你好@Touhid,在方法之外声明这三个参数不是一个选择,如果允许的话,我会这样做,但不,我需要在方法ClientsDetails()中声明它们,然后在调用方法Print()时在主方法中使用它们,谢谢您的友好回复您不能直接从另一个方法访问变量。所以我向类声明了3个变量,并从clientsDetails()赋值。所以分配的变量可以从任何地方访问。我对此投了赞成票,因为我认为不应该投反对票。您在描述中没有提到该要求,因此这是一个有效的答案。知道了这个要求,我现在也给了一个答复。亲爱的@Jered,非常感谢你非常有用的回答。它将帮助我理解“struct”和“passbyreference”