2015-07-26 2 views
0

У меня возникли проблемы с методами. Таким образом, одним способом я спрашиваю у пользователя имя для первого имени, и я хочу сохранить эту строку в другом методе, а затем мой основной метод вызывает метод, в котором хранится String. Но у меня проблемы с сохранением этой строки. Я использую этот код:Пользовательский ввод, хранящийся в методах

static void GetStudentInformation() 
{ 
    Console.WriteLine("Enter the student's first name: "); 
    string firstName = Console.ReadLine(); 
} 

static void PrintStudentDetails(string first) 
{ 
    Console.WriteLine("{0}", first); 
} 

public static void Main (string[] args){ 
    GetStudentInformation(); 
} 

Так как только они входят имя, оно должно быть сохранено в методе детали затем призвали в главном методе. Спасибо, что помогли мне заранее.

+0

также у GetStudent есть несколько строк и день рождения, в которые пользователь должен вводить данные. поэтому он не может быть статической строкой. – user2447032

ответ

5
static string GetStudentInformation() 
{ 
    Console.WriteLine("Enter the student's first name: "); 
    return Console.ReadLine(); 
} 

static void PrintStudentDetails(string first) 
{ 
    Console.WriteLine("{0}", first); 
} 

public static void Main (string[] args) 
{ 
    string firstName = GetStudentInformation(); 
    PrintStudentDetails(firstName); 
} 

Если вам нужно получить более одного ввода от пользователя. Вы можете вернуть список строк (быстрое решение):

static List<string> GetStudentInformation() 
    { 
     List<string> studentInformation = new List<string>(); 

     //first name 
     Console.WriteLine("Enter the student's first name: ")); 
     studentInformation.Add(Console.ReadLine()); 

     //last name 
     Console.WriteLine("Enter the student's last name: ")); 
     studentInformation.Add(Console.ReadLine()); 

     //more 
     return studentInformation; 
    } 

    static void PrintStudentDetails(List<string> studentInformation) 
    { 
     foreach (string info in studentInformation) 
     { 
       Console.WriteLine("{0}", info); 
     } 
    } 

    public static void Main (string[] args) 
    { 
     List<string> studentInformation = GetStudentInformation(); 
     PrintStudentDetails(studentInformation); 
    } 

или создать класс для хранения всех входов (лучшее решение):

class Student 
    { 
     public string FirstName {get;set;} 
     public string LastName {get;set;} 
    } 

static Student GetStudentInformation() 
    { 
     Student student = new Student(); 

     //first name 
     Console.WriteLine("Enter the student's first name: ")); 
     student.FirstName = Console.ReadLine(); 

     //last name 
     Console.WriteLine("Enter the student's last name: ")); 
     student.LastName = Console.ReadLine(); 

     //more 
     return student; 
    } 

    static void PrintStudentDetails(Student student) 
    { 
     Console.WriteLine("{0}", student.FirstName); 
     Console.WriteLine("{0}", student.LastName); 
    } 

    public static void Main (string[] args) 
    { 
     Student student = GetStudentInformation(); 
     PrintStudentDetails(student); 
    } 
+0

возврат Console.ReadLine(); должен быть sdtFirstName = Console.ReadLine(); , потому что я пытаюсь получить другую строку String от пользователя и сохранить ее, а затем вызвать метод PrintStudent для извлечения всех данных, которые вводит студент. любые идеи, как я могу это сделать? спасибо – user2447032

+0

@ user2447032: Если вам нужно получить более одного ввода от пользователя. Вы можете вернуть список строк или создать класс для хранения всех входов. Я обновлю ответ –

+0

@ user2447032: см. Мой обновленный ответ. –

0

Student.java

public class Student { 

    private String studentName; 

    public Student(String studentName) { 
     this.name = studentName; 
    } 

    public static String getStudentName() { 
     return studentName; 
    } 
    public static void setStudentName(String newName) { 
     studentName = newName; 
    } 

Тогда вы можете сделать:

Student aStudent = new Student(Console.ReadLine); 

I un что это не работает ТОЧНО для вашего конкретного случая, но оно предназначено только для отображения основной логики того, что вы хотите сделать.

Смежные вопросы