Книга: C# для профессионалов. Том II

Класс Employee в C#

Класс Employee в C#

Помня о приведенных выше замечаниях можно теперь представить первое определение версии C# класса Employee (отметим, что здесь показано определение класса, а не определение содержащего его пространства имен):

class Employee {
 private readonly string name;
 private decimal salary;
 public Employee(string name, decimal salary) {
  this.name = name;
  this.salary = salary;
 }
 public string Name {
  get {
   return name;
  }
 }
 public virtual decimal Salary {
  get {
   return salary;
  }
  set {
   salary = value;
  }
 }
 public decimal GetMonthlyPayment() {
  return salary/12;
 }
 public override string ToString() {
  return "Name: " + name + ", Salary: $" + salary.ToString();
 }
}

Просматривая этот код, мы видим сначала пару закрытых переменных — так называемых полей-членов, соответствующих переменным-членам в модуле класса VB. Поле name помечено как readonly. Мы скоро узнаем его точное значение. Грубо говоря, это гарантирует, что данное поле задано, когда создавался объект Employee, и не может впоследствии изменяться. В C# обычно не используют "венгерский" стиль именования объектов для имен переменных, поэтому они просто называются name и salary, а не mStrEmployeeName и mCurSalary. "Венгерский" стиль именования объектов означает, что имена переменных имеют префикс из букв, который указывает их тип (mStr, mCur и т.д.). Это на сегодня неважно, так как редакторы являются более развитыми и могут автоматически предоставить информацию о типах данных. Поэтому рекомендуется не использовать "венгерский" стиль именования объектов в программах C#.

В классе Employee существует также конструктор, пара свойств — Name и Salary, а также два метода — GetMonthlyPayment() и ToString(). Все это будет рассмотрено далее.

Отметим кстати, что имена свойств Name и Salary отличаются только регистром символов от имен своих соответствующих полей. Это не является проблемой, так как C# различает регистр символов. Способ, которым здесь именованы свойства и поля, соответствует обычному соглашению в C# и показывает, как можно на самом деле воспользоваться различием регистра символов.

Оглавление книги


Генерация: 0.824. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз