Выражения

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



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

Типы или классы? И типы, и классы

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


Типы или классы? И типы, и классы

Язык C# в большей степени, чем язык C++, является языком объектного программирования. В чем это выражается? В языке C# сглажено различие между типом и классом. Все типы – встроенные и пользовательские – одновременно являются классами, связанными отношением наследования. Родительским, базовым классом является класс Object. Все остальные типы или, точнее, классы являются его потомками, наследуя методы этого класса. У класса Object есть четыре наследуемых метода:

  1. bool Equals (object obj) – проверяет эквивалентность текущего объекта и объекта, переданного в качестве аргумента;
  2. System.Type GetType () – возвращает системный тип текущего объекта;
  3. string ToString () – возвращает строку, связанную с объектом. Для арифметических типов возвращается значение, преобразованное в строку;
  4. int GetHashCode() – служит как хэш-функция в соответствующих алгоритмах поиска по ключу при хранении данных в хэш-таблицах.

Естественно, что все встроенные типы нужным образом переопределяют методы родителя и добавляют собственные методы и свойства. Учитывая, что и типы, создаваемые пользователем, также являются потомками класса Object, то для них необходимо переопределить методы родителя, если предполагается использование этих методов; реализация родителя, предоставляемая по умолчанию, не обеспечивает нужного эффекта. Read more »


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

Урок 21. Как создать экземпляр класса по его имени?

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


Урок 21. Как создать экземпляр класса по его имени?

Часто требуется создать экземпляр некоторого класса по его имени. Например, для конфигурации некоторой программы – имя нужного класса может хранится в конфигурационном файле. Или же имя может задать пользователь в каком-нибудь диалоговом окне приложения.

В приведенном ниже примере для Windows мы сделаем это через метод CreateInstance класса Activator. Для этого примера нам понадобятся один интерфейс ISomeInterface и два производных от него класса Class1 и Class2. В принципе можно обойтись и без них, но с ними легче показать, что экземпляры наших классов Class1 и Class2 действительно создаются. Вот объявление интерфейса:

Read more »


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

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