如何在C#方法中打印多个值?

如何在C#方法中打印多个值?,c#,methods,C#,Methods,我想通过PrintStudentDetails(string first、string last、string birthday)方法打印GetStudentInformation()方法中的值。请查看以下代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Module3_HomeWork

我想通过PrintStudentDetails(string first、string last、string birthday)方法打印GetStudentInformation()方法中的值。请查看以下代码:

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

namespace Module3_HomeWork
{
    class Program
    {
        static void GetStudentInformation()
        {
            Console.WriteLine("Enter the student's first name: ");
            string firstName = Console.ReadLine();
            Console.WriteLine("Enter the student's last name: ");
            string lastName = Console.ReadLine();
            Console.WriteLine("Enter the student's birthdate: ");
            DateTime birthdate = Convert.ToDateTime(Console.ReadLine());
            Console.WriteLine("Enter the student's address line 1: ");
            string add1 = Console.ReadLine();
            Console.WriteLine("Enter the student's address line 2: ");
            string add2 = Console.ReadLine();
            Console.WriteLine("Enter the student's city: ");
            string city = Console.ReadLine();
            Console.WriteLine("Enter the student's state: ");
            string state = Console.ReadLine();
            Console.WriteLine("Enter the student's zip code: ");
            int zip = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter the student's country: ");
            string country = Console.ReadLine();
        }
        static void PrintStudentDetails(string first, string last, string birthday)
        {
            Console.WriteLine("{0} {1} was born on: {2}", first, last, birthday);
        }
        static void Main(string[] args)
        {
            GetStudentInformation();
            PrintStudentDetails(first, last, birthday);
        }

        public static string first { get; set; }

        public static string last { get; set; }

        public static string birthday { get; set; }
    }
}
如何仅使用方法而不使用类打印值?我对它进行了研究,发现了关于
out
ref
,任何帮助或指导都将不胜感激


关于

我不太清楚您所说的仅按方法而非类打印值是什么意思。但我想下面的例子可以帮到你

void PrintDetails(ref string s1, ref string s2, ref string s3)
{ 
  s1 = "Some text goes here";
  s2 = myNumber.ToString();
  s3 = "some more text";
}
现在调用此函数时,只需使用以下语法:

public void SomeOtherFunction()
{
  string sMyValue1 = null;
  string sMyValue2 = null;
  string sMyValue3 = null;

  PrintDetails(sMyValue1, sMyValue2, sMyValue3);
  //Now you have all the values inside your local variable. 
}

如果您只想输入名字、姓氏和出生日期,然后输出它们,您可以更改以下三行:

string firstName = Console.ReadLine();
string lastName = Console.ReadLine();
DateTime birthdate = Convert.ToDateTime(Console.ReadLine());
对下列事项:

first = Console.ReadLine();
last = Console.ReadLine();
birthday = Convert.ToDateTime(Console.ReadLine());
class Program
{
    static void GetStudentInformation(out string first, out string last, out string birthday)
    {
        Console.WriteLine("Enter the student's first name: ");
        first = Console.ReadLine();
        Console.WriteLine("Enter the student's last name: ");
        last = Console.ReadLine();
        Console.WriteLine("Enter the student's birthdate: ");
        birthday = Convert.ToDateTime(Console.ReadLine());
    }
    static void PrintStudentDetails(string first, string last, string birthday)
    {
        Console.WriteLine("{0} {1} was born on: {2}", first, last, birthday);
    }
    static void Main(string[] args)
    {
        string first, last, birthday;
        GetStudentInformation(out first, out last, out birthday);
        PrintStudentDetails(first, last, birthday);
    }
}
然后,您的程序应该按预期运行

但既然您提到了
out
ref
,那么您真正想要的可能是:

first = Console.ReadLine();
last = Console.ReadLine();
birthday = Convert.ToDateTime(Console.ReadLine());
class Program
{
    static void GetStudentInformation(out string first, out string last, out string birthday)
    {
        Console.WriteLine("Enter the student's first name: ");
        first = Console.ReadLine();
        Console.WriteLine("Enter the student's last name: ");
        last = Console.ReadLine();
        Console.WriteLine("Enter the student's birthdate: ");
        birthday = Convert.ToDateTime(Console.ReadLine());
    }
    static void PrintStudentDetails(string first, string last, string birthday)
    {
        Console.WriteLine("{0} {1} was born on: {2}", first, last, birthday);
    }
    static void Main(string[] args)
    {
        string first, last, birthday;
        GetStudentInformation(out first, out last, out birthday);
        PrintStudentDetails(first, last, birthday);
    }
}

如果您确实希望方法以这种方式返回多个值,那么使用
out
ref
关键字将帮助您从方法返回多个值,但使用属性可能是更好的解决方案。无论如何,这就是使用
out
关键字的效果:

static void GetStudentInformation(out string firstName, out string lastName, out DateTime birthDate,
    out string add1, out string add2, out string city, out string state, out int zip, out string country)
{
    Console.WriteLine("Enter the student's first name: ");
    firstName = Console.ReadLine();
    Console.WriteLine("Enter the student's last name: ");
    lastName = Console.ReadLine();
    Console.WriteLine("Enter the student's birthdate: ");
    birthDate = Convert.ToDateTime(Console.ReadLine());
    Console.WriteLine("Enter the student's address line 1: ");
    add1 = Console.ReadLine();
    Console.WriteLine("Enter the student's address line 2: ");
    add2 = Console.ReadLine();
    Console.WriteLine("Enter the student's city: ");
    city = Console.ReadLine();
    Console.WriteLine("Enter the student's state: ");
    state = Console.ReadLine();
    Console.WriteLine("Enter the student's zip code: ");
    zip = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Enter the student's country: ");
    country = Console.ReadLine();
}
static void PrintStudentDetails(string first, string last, string birthday)
{
    Console.WriteLine("{0} {1} was born on: {2}", first, last, birthday);
}

static void Main(string[] args)
{
    string firstName, lastName, add1, add2, city, state, country;
    DateTime birthDate;
    int zip;

    GetStudentInformation(out firstName, out lastName, out birthDate, out add1, out add2, out city, out state, out zip, out country);
    PrintStudentDetails(firstName, lastName, birthDate.ToShortDateString());
}

你也可以用
ref
关键字替换所有的关键字,你会得到同样的效果。在通过引用将变量传递给GetStudentInformation方法之前,只需将变量初始化为某个值。

使用属性而不是局部变量