2015-02-22 5 views
-1

Есть два вопроса, назначенные для выполнения домашних заданий, как одной и той же формы, поэтому я выложу первый один:.Вызов других классов из Main в C#

«Создать класс Employee Элементов для, как элементы данных являются номер сотрудника, имя, дата найма, описание работы, отдел и месячная зарплата. Этот класс часто используется для отображения алфавитного списка всех сотрудников. Включите соответствующие конструкторы и свойства. Переопределите метод To12String() , чтобы вернуть все данные Создайте второй класс , чтобы проверить класс Employee. "

Я создал класс Employee с соответствующими переменными, свойствами и конструкторами, но у меня возникли проблемы с «тестированием» его через второй класс. Код, который я написал, запускается без ошибок, но ничего не отображает (предположительно, цель тестирования). Где я ошибаюсь в вызывающем разделе?

Служащий Информация раздела:

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

namespace EmployeeProgram 
{ 
    public class employee 
    { 
     private int employeeNumber; 
     private string name; 
     private string hiredate; 
     private int monthlySalary; 
     private string description; 
     private string department; 

    public employee(int employeeNumber, string name, string dateOfHire, int monthlySalary, string description, string department) 
    { 

     this.employeeNumber = 321; 
     this.name = "Alex"; 
     this.hiredate = "01/02/15"; 
     this.monthlySalary = 2500; 
     this.description = "Corporate grunt"; 
     this.department = "Sales"; 
    } 

    public int EmployeeNumber 
    { 
     get 
     { 
      return employeeNumber; 
     } 
     set 
     { 
      employeeNumber = value; 
     } 
    } 

    public string Name 
    { 
     get 
     { 
      return name; 
     } 
     set 
     { 
      name = value; 
     } 
    } 

    public string Hiredate 
    { 
     get 
     { 
      return hiredate; 
     } 
     set 
     { 
      hiredate = value; 
     } 
    } 

    public int MonthlySalary 
    { 
     get 
     { 
      return monthlySalary; 
     } 
     set 
     { 
      monthlySalary = value; 
     } 
    } 
    public string Department 
    { 
     get 
     { 
      return department; 
     } 
     set 
     { 
      department = value; 
     } 
    } 
    public string Description 
    { 
     get 
     { 
      return description; 
     } 
     set 
     { 
      description = value; 
     } 
    } 

    public override string ToString() 
    { 
     return "Employee ID: " + employeeNumber + 
       "Employee Name: " + name + 
       "Employee Hire Date: " + hiredate + 
       "Employee Monthly Salary: " + monthlySalary + 
       "Employee Description: " + description + 
       "Employee Department: " + department; 
    } 

    public void Print() 
    { 
     Console.WriteLine(this.ToString()); 
    } 
} 

"Вызов раздел"

namespace employee 
{ 
    public class employeeApp 
    { 
     public static void Main() 
     { 
      EmployeeProgram.employee Employee = new EmployeeProgram.employee(321, "Alex", "1/02/15", 2500, "Corporate grunt", "Sales"); 

     } 

    } 
} 
+3

Где вы называете метод печати .....? – walther

+0

Вы создаете экземпляр «Employee», но вы никогда с ним ничего не делаете. Предположительно, вы хотите отобразить его на консоли. То, что вы переопределили метод ToString, - это подсказка о том, как это сделать, ваш учитель также, вероятно, представил вам методы Console.Write и Console.WriteLine в классе. В качестве примечания, в соответствии с обычными соглашениями об именах C# имена классов должны быть заглавными, т. Е. Ваш класс с именем 'employee' * должен * быть назван' Employee'. Теперь это может показаться неважным, но не соблюдение стандартных соглашений - это надежный способ сделать ваш код нечитаемым. –

+0

вы не называете Employee.Print, что и печатает сотрудника. –

ответ

0

Вам нужно вызвать Print() метод EmployeeProgram.employee в методе main().

namespace employee 
{ 
    public class employeeApp 
    { 
     public static void Main() 
     { 
      EmployeeProgram.employee Employee = new EmployeeProgram.employee(321, "Alex", "1/02/15", 2500, "Corporate grunt", "Sales"); 
      Employee.Print(); 
     } 

    } 
} 

Но, как уже отмечалось, есть много вопросов, с кодом:

  • Имя класса должно быть в Паскаля корпусе, то есть начинать с заглавной буквы. Следовательно, это должно быть EmployeeProgram.Employee, а не EmployeeProgram.employee
  • Частные переменные обычно следуют за корпусом верблюда, т. Е. Начинаются с маленькой буквы. Следовательно, это должно быть meployee вместо Employee в вашем методе Main().
  • Вы можете уменьшить код шаблона в своем классе employee, используя авто-свойства.
  • Параметр dateOfHire должен быть объектом DateTime вместо string.
  • Параметры, подобные monthlySalary, обычно имеют тип decimal, а не int.
Смежные вопросы