Книга: 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# и показывает, как можно на самом деле воспользоваться различием регистра символов.
- Конструктор Employee
- Пример: Employees и Managers
- Создание базы данных Employee с помощью скриптов
- Методы класса Employee
- Свойства класса Employee
- Использование классов Employee и Manager
- Модуль класса Employee в VB
- Наследование от класса Employee
- Индексы по выражениям
- rc.UTIN.firewall.txt
- Другие предикаты сравнения
- Использование isql -a