Интерфейсы (II)

Написано admin в 20 Июнь 2008 – 21:36 -


Интерфейсы (II)

Поскольку аргумент метода должен иметь универсальный тип object, то перед выполнением сравнения его нужно привести к типу Person. Это приведение использует операцию as, позволяющую проверить корректность выполнения приведения.

При приведении типов часто используются операции is и as. Логическое выражение (obj is T) истинно, если объект obj имеет тип T. Оператор присваивания (obj = P as T;) присваивает объекту obj объект P, приведенный к типу T, если такое приведение возможно, иначе объекту присваивается значение null. Семантику as можно выразить следующим условным выражением: (P is T) ? (T)P : (T)null.

Заметьте также, что при проверке на значение null используется отношение Equals, а не обычное равенство, которое будет переопределено.

Отношение порядка на объектах класса Person задается как отношение порядка на фамилиях персон. Так как строки наследуют интерфейс IComparable, то для фамилий персон вызывается метод CompareTo, его результат и возвращается в качестве результата метода CompareTo для персон. Если аргумент метода не будет соответствовать нужному типу, то выбрасывается исключение со специальным уведомлением.

Конечно, сравнение персон может выполняться по разным критериям: возрасту, росту, зарплате. Общий подход к сравнению персон будет рассмотрен в следующей лекции 20. Read more »


Tags: , , , , , , , , , , , , ,
Находится в Учебник | No Comments »

Урок 49. Ввод/вывод в C# (System.IO)

Написано admin в 14 Июнь 2008 – 16:29 -


Урок 49. Ввод/вывод в C# (System.IO)

Для операций ввода-вывода служит пространство имен System.IO.

Вот краткий обзор наиболее важных классов и перечислений из этого пространства имен:

  • BinaryReader – позволяет читать из файла данные различных типов (целые, вещественные, логические и т. п.)
  • BinaryWriter – позволяет записывать в файл данные различных типов (целые, вещественные, логические и т. п.)
  • Directory – класс со статическими методами для работы с папками
  • DirectoryInfo – класс для работы с некоторой папкой
  • File – класс со статическими методами для работы с файлом
  • FileInfo – класс для работы с некоторым файлом
  • Path – класс для работы с файловыми путями
  • Перечисление FileAttributes – атрибуты файла
  • Перечисление FileMode – возможные способы открытия файла
  • Перечисление FileAccess содержит константы, показывающие, открыт ли файл для чтения, записи и др.
  • FileSystemWatcher – класс для отслеживания изменений в файловой системе
  • Перечисление NotifyFilters – параметры, по которым происходит отслеживание изменений в файловой системе
  • Перечисление WatcherChangeTypes – какие изменения отслеживаются в файловой системе

Tags: , , , , , , , , , , , , ,
Находится в Уроки C# | No Comments »

C# — язык программирования, сочетающий объектно-ориентированные и аспектно-ориентированные концепции. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к С++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).