| netlib.narod.ru | < Ќазад | Ћглавление | „алее > |
На самом деле версия этой программы на С# не так уж сильно отличается от версии на C++.
CsDateClass.cs
//----------------------------------------------
// CsDateClass.cs (C) 2001 by Charles Petzold
//----------------------------------------------
using System;
class CsDateClass
{
public static void Main()
{
Date mydate = new Date();
mydate.month = 8;
mydate.day = 29;
mydate.year = 2001;
Console.WriteLine("Day of year = {0}", mydate.DayOfYear());
}
}
class Date
{
public int year;
public int month;
public int day;
public static bool IsLeapYear(int year)
{
return (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0));
}
public int DayOfYear()
{
int[] ЊonthDays = new int[] { 0, 31, 59, 90, 120, 151,
181, 212, 243, 273, 304, 334 };
return MonthDays[month - 1] + day +
(month > 2 && IsLeapYear(year) ? 1 : 0);
}
};
Одно из внесенных мною изменений в том, что метод Main, содержащийся теперь в собственном классе, я поместил в начало программы, а класс Date — в конец программы. Я был вправе это сделать, так как в С# не требуется упреждающее объявление.
В программе на C++ я определял объект Date так:
Date mydate;
В С# нужна конструкция:
Date mydate = new Date();
Как и при определении массива, ключевое слово new служит для выделения памяти новому объекту типа Date. (О скобках после Date я расскажу ниже.)
Еще одно изменение в том, что в программе на С# ключевое слово public требуется перед каждым полем и методом, к которому обращаются вне класса. Ключевое слово public называется модификатором доступа (access modifier), так как показывает, как можно обращаться к полям и методам. Альтернативами public являются private и protected, которые я рассмотрю дальше в этой главе.
Заметьте, что метод IsLeapYear возвращает значение типа bool. В методе DayOfYear я использовал условный оператор (? :), чтобы получить значение 1, прибавляемое ко дню високосного года. Я мог бы также привести выражение bool к типу int.
Давайте немного поговорим на жаргоне. Date — это класс (class). Класс Date содержит пять членов (member). Три члена — year, month и day — содержат данные и называются полями (fields). Остальные два члена содержат код и называются методами (methods). Переменная mydate является объектом (object) типа Date. Кроме того, ее называют экземпляром (instance) класса Date.
| netlib.narod.ru | < Ќазад | Ћглавление | „алее > |